PHP制作图型计数器的例子

 更新时间:2016年11月25日 16:31  点击:1459

以前在奥索看见过很多这样的例子,各各方法复杂,请看如下例子实现图形计数器。在网页中使用请用 <script src="http://文件地址"></script>

<?
//存放计数的文本文件
$count="count.txt";
//计数器的位数,假如不填则默认为6位
$wei="";
//图像的URL路径
$tu="/tcount/images";
?>
<?
if ($wei=="") { $wei=6; }
if (!file_exists($count)) { $fp=fopen($count,"w "); fputs($fp,0,100); fclose($fp); }
if ($REMOTE_ADDR!=$ip) {
$fp=fopen($count,"r ");
$cc=fgets($fp,100);
$cc=trim($cc);
if ($cc=="") { $cou=1; }
else { $cou=$cc 1; }
rewind($fp);
fputs($fp,$cou,100);
fclose($fp);
}
setcookie("ip",$REMOTE_ADDR,time() 86400);
$fp=fopen($count,"r ");
$cou=fgets($fp,100);
$cou=trim($cou);
fclose($fp);
$w=strlen($cou);
while($w<$wei) {
$cou="0".$cou;
$w ;
}
$www=strlen($cou);
$i=0;
echo "document.write("<p align=center>");n";
while($i<$www) {
$ym=substr($cou,$i,1);
echo "document.write("<img src=$tu/$ym.gif>");n";
$i ;
}
?>

<?php
# Constants
define("IMAGE_BASE", './');
define("MAX_WIDTH", 150);
define("MAX_HEIGHT", 150);

# Get image locationstr_replace('..', '', $_SERVER['QUERY_STRING']);
$image_file = 't.jpg';
$image_path = IMAGE_BASE . "$image_file";

# Load image
$img = null;
$ext = strtolower(end(explode('.', $image_path)));
if ($ext == 'jpg' || $ext == 'jpeg') {
     $img = imagecreatefromjpeg($image_path);
} else if ($ext == 'png') {
     $img = @imagecreatefrompng($image_path);
# Only if your version of GD includes GIF support
} else if ($ext == 'gif') {
     $img = @imagecreatefrompng($image_path);
}

# If an image was successfully loaded, test the image for size
if ($img) {

     # Get image size and scale ratio
     $width = imagesx($img);
     $height = imagesy($img);
     $scale = min(MAX_WIDTH/$width, MAX_HEIGHT/$height);

     # If the image is larger than the max shrink it
     if ($scale < 1) {
         $new_width =150; //floor($scale*$width);
         $new_height =150;// floor($scale*$height);

         # Create a new temporary image
         $tmp_img = imagecreatetruecolor($new_width, $new_height);

         # Copy and resize old image into new image
         imagecopyresized($tmp_img, $img, 0, 0, 0, 0,$new_width, $new_height, $width, $height);
         imagedestroy($img);
         $img = $tmp_img;
     }
}

# Create error image if necessary
if (!$img) {
     $img = imagecreate(MAX_WIDTH, MAX_HEIGHT);
     imagecolorallocate($img,0,0,0);
     $c = imagecolorallocate($img,70,70,70 );
     imageline($img,0,0,MAX_WIDTH,MAX_HEIGHT,$c2);
     imageline($img,MAX_WIDTH,0,0,MAX_HEIGHT,$c2);
}

# Display the image
header("Content-type: image/jpeg");
imagejpeg($img);
imagedestroy($img);
?>

 

图片链接广告大概是最为常用的网络广告模式,但是多条广告的动态随机显示可不是那么简单的事情。PHP的文件上传函数提供了在这块468x60像素的区域(网页广告的标准尺寸)实现能够根据权值大小而随机显示广告的解决方案,从而避免了开发FTP程序或是ASP和Perl CAI中需要外挂扩展才能实现此项功能的弊端。

  本例在PHP4 MySQL Apache for Win9x/2000下调试通过,共包括两部分:用来增加新广告的程序AddNewAd.php3以及显示广告的程序ShowAd.php3,都存放在服务器PHP文件目录下的“test/guanggao/”目录中。在guanggao目录中建立一个存放广告链接图片的子目录“adbanner/”。下面我们按步骤进行分析。

1.首先,建立MySQL数据库:guanggao

  在Windows环境下,建立一个MySQL空数据库很简单,因为每个数据库都是存在于mysql/data/目录下的一个子目录,所以只要在该目录下新建子目录guanggao就可以了,这时数据库内还没有任何表和数据。

2.建立新增广告程序:AddNewAd.php3

  设计思路:其中先用表单得到用户的新广告信息;然后用PHP函数copy()将链接图片(banner)文件上传到服务器adbanner目录下;最后将图片文件名、广告网址、说明、加权信息等写入建立的MySQL数据表ad中。该程序代码如下:

  # AddNewAd.php3

PHP一个最大的优点就是它对新技术的支持非常轻易,这种语言的可扩展性使得开发人员能够很方便地添加新的模块,而且遍布世界的技术团体的支持和众多扩展模块的支持使得PHP已经成为功能最齐全的Web编程语言之 一。目前可得到的扩展模块已经能够使开发人员执行IMAP和POP3操作,可以动态产生图象和Shockwave Flash动画,进行信用卡验证,敏感数据的加密解密,还能够解析XML格式的数据。但这还不是全部,现在,又有一个新的模块可以与PHP进行绑定了,那就是PDFLib扩展模块,它能够让开发人员动态产生PDF(Adobe Portable Document Format)格式的文件,下面就先看看如何在PHP里使用这个模块。

为了能够使PHP具有操作PDF格式文档的能力,你必须先在你的系统里安装PDFLib扩展库,假如你使用的是Lunix系统,你可以从 http://www.pdflib.com/pdflib/index.html下载一个并进行编译,假如你使用的是Windows系统,那就更简单了,只需要下载一个编译好的PDFLib库,然后在PHP的配置文件里把相应的行的注释去掉即可。


extension=php_pdf.dll


假如是动态装载,也可以是参照下面的命令:


dl("php_pdf.dll");


此外,你还必须有一个Adobe Acrobat PDF阅读器,用来浏览PDF格式,假如你没有,你可以从http://www.adobe.com/免费下载。

一旦你做好了前期预备,就可以创建PDF文件了,下面就是一个简单的例子:



<?php

// 创建一个新的PDF文档句柄

$pdf = PDF_new();


// 打开一个文件

PDF_open_file($pdf, "PDFTest.pdf");


// 开始一个新页面(A4)

PDF_begin_page($pdf, 595, 842);


// 得到并使用字体对象

$arial = PDF_findfont($pdf, "Arial", "host", 1);

PDF_setfont($pdf, $arial, 10);


// 输出文字

PDF_show_xy($pdf, "This is an exam of PDF Documents, It is a good Lib,",50, 750);

PDF_show_xy($pdf, "If you like,please try yourself!", 50, 730);


// 结束一页

PDF_end_page($pdf);


// 关闭并保存文件

PDF_close($pdf);

?>



然后保存成PHP文件,在浏览器里进行浏览,PHP就会执行上面的代码,它产生一个新的PDF文件,并保存到指定的位置。

现在我们分析一下什么的代码,要使用PHP创建PDF文件,有四个步骤:1,创建文档句柄;2,注册文档的字体和颜色;3,用PDFLib提供的函数向文件句柄写文字或画图;4,保存文档。

这是一个简单的投票程序,对于刚学PHP和朋友来说是一个很不错的入门程序。在这里给大家介绍一下,希望能对朋友们有所帮助。

该系统是由以下四个文件组成的:有HTML调查表单的survey.htm,实现调查功能的survey.php,记录调查项目的data.txt 和记录调查结果的survey.txt.其中data.txt和survey.txt我们可以用NOTEPAD分别创建之,并传到程序目录下。 文件 data.txt中存的是要进行调查的项目,注重每个项目应占一行;而survey.txt则可以是一个什么内容也没有的空文件。

Survey.htm的代码可以如如下所示:

<html>
<head>
<title>survey</title>
</head>
<body>
<form method="POST" action="survey.php">
<p><input type="radio" value="0" name="vote">调查项目一</p>
<p><input type="radio" name="vote" value="1">调查项目二</p>
<p><input type="radio" name="vote" value="2">调查项目三</p>
<p><input type="radio" name="vote" value="3">调查项目四</p>
<p><input type="radio" name="vote" value="4">调查项目五</p>
<p><input type="hidden" name="go" value="1">
<p><input type="submit" value="提交" name="B1"></p>
<a href="survey.php?result=1">查看结果</a>
</form>
</body>
</html>

注重文件data.txt中的调查项目与上面的调查项目在个数和排列顺序必须保持一致,否则会出错或调查的结果不准确。同时为了将调查结果显示成条形图形式,应该预备若干种不同颜色的条形图片。如:0.gif,1.gif,2.gif,3.gif,4.gif等.

以下是实现调查功能的survey.php代码:

<?
$data="data.txt";
$votes="survey.txt";
$dataf=file($data); /*读出调查项目文件中的项目*/
$file_votes=fopen($votes, "r");
$line_votes=fgets($file_votes, 255); /*读出已经记录的调查结果*/
fclose($file_votes);
$single_vote=explode("|", $line_votes); /* 并将数据按指定的字串切开,再将字串传回到数组变量中 */
if ($result!=1) /*假如已经接受了调查*/
{
$file_votes=file($votes, "r");
if ($REMOTE_ADDR == $file_votes[1]) /*检查是不是同一个人*/
{
echo "<center><font color=red>您已投过票了,谢谢您的参与!</font></center>";
exit;
}
/*假如IP不重复,则执行以下程序*/

[!--infotagslink--]

相关文章

  • Linux下PHP安装curl扩展支持https例子

    安装curl扩展支持https是非常的重要现在许多的网站都使用了https了,下面我们来看一篇关于PHP安装curl扩展支持https例子吧。 问题: 线上运行的lamp服务器,默认yu...2016-11-25
  • php使用floor去掉小数点的例子

    floor会产生小数了如果我们不希望有小数我们是可以去除小数点的了,下面一聚教程小编来为各位介绍php使用floor去掉小数点的例子,希望对各位有帮助。 float floor (...2016-11-25
  • 解析C#自定义控件的制作与使用实例的详解

    本篇文章是对C#中自定义控件的制作与使用实例进行了详细的分析介绍,需要的朋友参考下...2020-06-25
  • ps怎么制作人物影子效果

    ps软件是现在很多人比较喜欢的,通过ps软件可以制作很不错的图片效果。这次文章就给大家介绍下使用ps怎么制作任务影子,具体制作方法下面一起来看看。 ps人物影子效...2017-07-06
  • 用ps制作二寸证件照

    有没有觉得外面拍的证件照都很丑。那么本文就教大家制作二寸证件照的方法,学会了就能做自己美美的证件照了哈哈! 步骤 双击打开php,首先教大家制作两寸照片的大小。...2016-12-21
  • 纯Css实现下拉菜单的简单例子

    下面我们来看一篇关于纯Css实现下拉菜单的简单例子,希望这篇文章能够给各位同学带来帮助,具体步骤如下. 大家可能会经常用到hover这属性,用hover实现鼠标经过的颜...2017-01-22
  • ps怎么制作宣传单

    ps软件使用对很多人来说是非常重要的,很多人还不知道使用ps怎么制作宣传单,下面文章就给大家介绍下ps怎么制作宣传单,喜欢次效果的一起来看看。。 首先,我们新建一个2...2017-07-06
  • 教大家制作简单的php日历

    最近的一个项目中,需要将数据用日历方式显示,网上有很多的JS插件,后面为了自己能有更大的控制权,决定自己制作一个日历显示。如下图所示:一、计算数据 1、new一个Calendar类2、初始化两个下拉框中的数据,年份与月份3、初始...2015-11-24
  • Java利用Redis实现高并发计数器的示例代码

    这篇文章主要介绍了Java利用Redis实现高并发计数器的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-23
  • php时间日期对比与日期加减例子

    在php中日期对比用得比较多了,还有一个日期加减也用到不少,下面我拿两个例子来给大家介绍在php中日期操作方法吧,希望文章能给你带来帮助 功能需求 文章发布时段操...2016-11-25
  • php更新修改excel中的内容例子

    本例子不是读取Excel或生成新的Excel,而是读取现有的Excel文件,然后修改Excel中的数据,就像修改mysql中数据一样的哦。 代码如下 ...2016-11-25
  • 怎样用PS制作GIF雪糕

    本文为大家带来gif雪糕的制作方法,难度不大,可效果很漂亮哦,关注一聚教程网学起来! 步骤: 1、使用AI新建一个1200*800的画布 2、使用矩形工具创建一个宽为250px,高度不...2016-12-21
  • 美图秀秀制作印章的图文教程

    美图秀秀可以像ps一样的来制作达到ps同样效果的照片了,但美图秀秀是要简单了很多了,就拿利用美图秀秀制作印章讲吧,不会ps的朋友只需要几下就好了,压根没需要什么基础了,下...2016-09-14
  • php正则获取文章内容中图片地址例子

    正则提取图片中的地址我们介绍过很多的相关文章了,下面再来给各位介绍一个可以提取内容中第一张图片的例子,希望对各位有帮助。 代码如下 复制代码 ...2016-11-25
  • 利用ps制作非常精致的蓝色水晶按钮

    关于利用ps制作非常精致的蓝色水晶按钮的教程小编在几年前就介绍过许多的相关教程了,今天我们一起再来看一篇水晶按钮制作效果吧。 最终效果 1、打开Adobe Photos...2016-09-14
  • php获取QQ头像并显示的例子

    最近看到博客留言的头像有点别扭,因为游客的头像都是同一个头像,看着不是很舒服。虽然现在绝大多数的主题集成了Gavatar头像功能,先不说gavatar被墙的问题,我自己现在都没...2016-11-25
  • php判断字符串是否包含另一个字符串例子

    php判断字符串是否包含另一个字符串的实现方法有许多的办法,像我们在网上一搜索可看到大量关于字符是否包含指定字符的方法,下面我把这些实用的例子整理一起与大家分享...2016-11-25
  • 利用ps 制作粉绿色非主流效果(1/5)

    利用ps 制作粉绿色非主流效果粉色非主流图片的调色方法。作者用的方法非常实用,调色部分直接用通道覆盖法调出淡红色主色,然后处理细节部分,再加上暗角和文字即可。 原图...2016-09-14
  • 使用react+redux实现计数器功能及遇到问题

    使用redux管理数据,由于Store独立于组件,使得数据管理独立于组件,解决了组件之间传递数据困难的问题,非常好用,今天重点给大家介绍使用react+redux实现计数器功能及遇到问题,感兴趣的朋友参考下吧...2021-06-02
  • ps怎么制作广告

    ps软件是现在使用非常广泛的图片制作软件,很受大家喜欢。这次文章要给的大家介绍下ps怎么制作广告,下面具体来看看制作方法。 ps广告设计制作方法/步骤&#8195;&#819...2017-07-06