PHP头条
热点:

修改获取验证码图片到本地的PHP程序


   最近项目不是很大,所以时间比较的空间,昨天琢磨着写点东西,想起了前几天电信公司投票选微笑天使的活动,投票是要填写验证码的,想了下想写个投票作弊程序,可是等我放假回来,人家活动已经结束了,昨天突然想起来,就写了一个获取验证码图片到本地的PHP程序,以备今后有类似的投票活动可以直接拿来使用。

  程序采用了PHP的GD库,原理很简单,就是先建立一张空白图片,然后把验证码的图片使用PHP GD库中的imagecreatefromjpeg函数建立一个image对象,最后计算图片的长宽,再次使用PHP内置的imagecopy复制到一开始建立的空白图片上去。

  全部代码如下:

  header("Content-type:image/png");

  set_time_limit(0);//设置PHP超时时间

  $url = $_GET['url'];

  $url = "http://vcer.baidu.com/verify";

  $imginfo = GetImageSize ( $url );

  $imgw = $imginfo [0];

  $imgh = $imginfo [1];

  $bg = imagecreatetruecolor($imgw,$imgh);

  $image = imagecreatefromjpeg($url);

  imagecolorallocate($image,255,255,255);

  imagecopy($bg,$image,0,0, 0,0,$imgw,$imgh);

  imagedestroy($image);

  ImagePng($bg);

  此处的代码支持验证码格式为jpg的格式,如果是png或者gif的格式可以参考第二页。

  通过上一页一个获取验证码图片到本地的PHP程序,对于验证码为jpg格式的图片是可以正常输出的,对于png、gif的验证码则不能正常使用,今天稍微修改一下PHP代码,使其可以支持png、gif、jpg三种格式的验证码。

  PHP判断图片的格式可使用php内置的exif_imagetype函数,非常方便,

  关于exif_imagetype的详细使用方法可以访问:http://php.net/manual/en/function.exif-imagetype.php

  header("Content-type:image/png");

  set_time_limit(0);//设置PHP超时时间

  $url = $_GET['url'];

  $url = "http://vcer.baidu.com/verify";

  if(empty($url)){

  echo "没有图片";

  die;

  }

  $imginfo = GetImageSize ( $url );

  $type = exif_imagetype($url);

  $imgw = $imginfo [0];

  $imgh = $imginfo [1];

  $bg = imagecreatetruecolor($imgw,$imgh);

  if($type==IMAGETYPE_GIF){

  $image = imagecreatefromgif($url);

  }elseif($type==IMAGETYPE_JPEG){

  $image = imagecreatefromjpeg($url);

  }elseif($type==IMAGETYPE_PNG){

  $image = imagecreatefrompng($url);

  }

  imagecolorallocate($image,255,255,255);

  imagecopy($bg,$image,0,0, 0,0,$imgw,$imgh);

  imagedestroy($image);

  ImagePng($bg);

www.phpzy.comtrue/php/17089.htmlTechArticle修改获取验证码图片到本地的PHP程序 最近项目不是很大,所以时间比较的空间,昨天琢磨着写点东西,想起了前几天电信公司投票选微笑天使的活动,投票是要填写验证码的,想了下想...

相关文章

    暂无相关文章

PHP之友评论

今天推荐