利用php生成验证码

 更新时间:2017年7月6日 23:49  点击:1534
小编推荐的这篇文章介绍了利用php生成验证码的教程,非常实用,有兴趣的同学快来看看吧。

 

 代码如下复制代码

<?php

/**

 * php生成验证码

 * @param $width 画布宽

 * @param $height 画布高

 * @param $vcodelen 验证码长度

 * @param $pointnum 干扰像素点数量

 * @param $linenum 干扰线条数量

 *

 * 思路:创建验证码画布,生成并填充背景色,生成验证码内容/干扰像素点/线,填充到画布,输出。

 */

 $width= 100;

 $height= 30;

 $vcodelen= 4;

 $pointnum= 200;

 $linenum= 3;

 // 创建画布

 $image= imagecreatetruecolor($width,$height);

 // 创建色块

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

 // 填充画布背景色

 imagefill($image, 0, 0,$bgcolor);

 // 验证码内容

 for($i=0;$i<$vcodelen;$i++) {

  // 字体大小

  $fontsize= 5;

  // 字体颜色,颜色在限定范围内随机

  $fontcolor= imagecolorallocate($image, rand(0,120), rand(0,120), rand(0,120));

  $data='abcdefghijklmnopqrstuvwxyz0123456789'

  // 验证码内容在以上字符串内随机截取

  $fontcontent=substr($data, rand(0,strlen($data)),1);

  // 字符串显示位置

  $x= ($i*$width/4)+rand(5,15);

  $y= rand(5,10);

  // 字符串填充图片

  // imagestring的字体大小可选1-5,字体再大需要用imagettftext函数(需要字体文件)

  imagestring($image,$fontsize,$x,$y,$fontcontent,$fontcolor);

  // imagettftext($image, $fontsize, 0, $x, $y, $fontcolor, '/font/Geneva.dfont', $fontcontent);

 }

 // 干扰像素点

 for($i=0;$i<$pointnum;$i++) {

  $pointcolor= imagecolorallocate($image, rand(0,120), rand(0,120), rand(0,120));

  // 画布填充像素点函数

  imagesetpixel($image, rand(0,$width), rand(0,$height),$pointcolor);

 }

 // 干扰线条

 for($i=0;$i<$linenum;$i++) {

  $linecolor= imagecolorallocate($image, rand(0,120), rand(0,120), rand(0,120));

  // 画布填充线条函数

  imageline($image, rand(0,$width), rand(0,$height), rand(0,$width), rand(0,$height),$linecolor);

 }

 // 图片输出格式

 header('content-type: image/png');

 // 输出验证码图片

 imagepng($image);

 // 销毁画布

 imagedestroy($image);

?>

 

小编给大家推荐的这篇文章介绍了php生成图片缩略图功能示例,非常实用,有兴趣的同学快看看吧

本文实例讲述了php生成图片缩略图功能。分享给大家供大家参考,具体如下:

完整代码如下:

 

 代码如下 复制代码

<?php

/*

 * Created on 2011-3-18

 *

 * To change the template for this generated file go to

 * Window - Preferences - PHPeclipse - PHP - Code Templates

*/

/*构造函数-生成缩略图+水印,参数说明:

$srcFile-图片文件名,

$dstFile-另存文件名,

$markwords-水印文字,

$markimage-水印图片,

$dstW-图片保存宽度,

$dstH-图片保存高度,

$rate-图片保存品质*/

makethumb("1.jpg","aa/b.jpg","50","50");

functionmakethumb($srcFile,$dstFile,$dstW,$dstH,$rate= 100,$markwords= null,$markimage= null) {

  $data=GetImageSize($srcFile);

  switch($data[2]) {

    case1:

      $im= @ImageCreateFromGIF($srcFile);

    break;

    case2:

      $im= @ImageCreateFromJPEG($srcFile);

    break;

    case3:

      $im= @ImageCreateFromPNG($srcFile);

    break;

  }

  if(!$im)returnFalse;

  $srcW= ImageSX($im);

  $srcH= ImageSY($im);

  $dstX= 0;

  $dstY= 0;

  if($srcW*$dstH>$srcH*$dstW) {

    $fdstH=round($srcH*$dstW/$srcW);

    $dstY=floor(($dstH-$fdstH) / 2);

    $fdstW=$dstW;

  }else{

    $fdstW=round($srcW*$dstH/$srcH);

    $dstX=floor(($dstW-$fdstW) / 2);

    $fdstH=$dstH;

  }

  $ni= ImageCreateTrueColor($dstW,$dstH);

  $dstX= ($dstX< 0) ? 0 :$dstX;

  $dstY= ($dstX< 0) ? 0 :$dstY;

  $dstX= ($dstX> ($dstW/ 2)) ?floor($dstW/ 2) :$dstX;

  $dstY= ($dstY> ($dstH/ 2)) ?floor($dstH/ s) :$dstY;

  $white= ImageColorAllocate($ni, 255, 255, 255);

  $black= ImageColorAllocate($ni, 0, 0, 0);

  imagefilledrectangle($ni, 0, 0,$dstW,$dstH,$white);// 填充背景色

  ImageCopyResized($ni,$im,$dstX,$dstY, 0, 0,$fdstW,$fdstH,$srcW,$srcH);

  if($markwords!= null) {

    $markwords= iconv("gb2312","UTF-8",$markwords);

    //转换文字编码

    ImageTTFText($ni, 20, 30, 450, 560,$black,"simhei.ttf",$markwords);//写入文字水印

    //参数依次为,文字大小|偏转度|横坐标|纵坐标|文字颜色|文字类型|文字内容

     

  }elseif($markimage!= null) {

    $wimage_data=GetImageSize($markimage);

    switch($wimage_data[2]) {

      case1:

        $wimage= @ImageCreateFromGIF($markimage);

      break;

      case2:

        $wimage= @ImageCreateFromJPEG($markimage);

      break;

      case3:

        $wimage= @ImageCreateFromPNG($markimage);

      break;

    }

    imagecopy($ni,$wimage, 500, 560, 0, 0, 88, 31);//写入图片水印,水印图片大小默认为88*31

    imagedestroy($wimage);

  }

  ImageJpeg($ni,$dstFile,$rate);

  ImageJpeg($ni,$srcFile,$rate);

  imagedestroy($im);

  imagedestroy($ni);

}

?>

 

PHP使用在很多用户的生活中是很重要的,那么php怎么获取excel文件数据呢?有些什么获取方法,还不知道的下面我们就一起来看看。

很简单就可以实现,下面为大家简单介绍下

1、下载PHPExcel类,是一个文件夹,还得有一个文件PHPExcel.php,两个在同级目录

require__DIR__ .'./PHPExcel/IOFactory.php'

  

  $PHPReader=new\PHPExcel_Reader_Excel2007();

  

  //判断文件类型

  if(!$PHPReader->canRead($filePath)) {

   $PHPReader=new\PHPExcel_Reader_Excel5();

  

   if(!$PHPReader->canRead($filePath)) {

    echo'no Excel'

    returnfalse;

   }

  }

  $PHPExcel=$PHPReader->load($filePath);

  /**读取excel文件中的第一个工作表*/

  

  $currentSheet=$PHPExcel->getSheet(0);

  /**取得最大的列号*/

  

  $allColumn=$currentSheet->getHighestColumn();

  /**取得一共有多少行*/

  

  $allRow=$currentSheet->getHighestRow();

  

  /**从第1行开始输出*/

  for($currentRow= 1;$currentRow<=$allRow;$currentRow++) {

  

   /**从第A列开始输出*/

   for($currentColumn='A'$currentColumn<=$allColumn;$currentColumn++) {

    $val=$currentSheet->getCellByColumnAndRow(ord($currentColumn) - 65,$currentRow)->getValue();

    /**ord()将字符转为十进制数*/

    $date[$currentRow- 1][] =$val;

   } 

  }

  return$date;

Mac系统也是现在使用比较多的系统,今天文章要给大家介绍的是mac系统下怎么安装多个php并自由切换,还不知道具体方法的下面一起来看看。

最近工作中遇到一个问题,需要实现在mac系统下安装多个php并实现自由切换,通过查找相关的资料找到了解决的方法,所以想着总结下来,方便大家和自己学习参考,下面话不多说,来看看的介绍吧。

一、安装多版本php

$ brew install php54 

$ brew install php70

如果安装报以下错误:

Error: Cannot install homebrew/php/php70 because conflicting formulae are installed.

php54: because different php versions install the same binaries.

Please `brew unlink php54` before continuing.

解决办法有二种:

1、brew unlink php54

2、删除/usr/local/bin,下面有关php的软链接

上面2种方法,目的是一样的。

二、安装切换工具php-version

$ brew install php-version 

$ source $(brew --prefix php-version)/php-version.sh 

$ php-version 

 5.4.45 

* 7.0.17 

$ php-version 5.4.45 //切换到5.4 

$ php-version 

* 5.4.45 

 7.0.17 

$ echo "source $(brew --prefix php-version)/php-version.sh" >> ~/.bash_profile

 代码如下复制代码

[!--infotagslink--]

相关文章

  • PHP 验证码不显示只有一个小红叉的解决方法

    最近想自学PHP ,做了个验证码,但不知道怎么搞的,总出现一个如下图的小红叉,但验证码就是显示不出来,原因如下 未修改之前,出现如下错误; (1)修改步骤如下,原因如下,原因是apache权限没开, (2)点击打开php.int., 搜索extension=ph...2013-10-04
  • JS实现随机生成验证码

    这篇文章主要为大家详细介绍了JS实现随机生成验证码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-09-06
  • php二维码生成

    本文介绍两种使用 php 生成二维码的方法。 (1)利用google生成二维码的开放接口,代码如下: /** * google api 二维码生成【QRcode可以存储最多4296个字母数字类型的任意文本,具体可以查看二维码数据格式】 * @param strin...2015-10-21
  • Java生成随机姓名、性别和年龄的实现示例

    这篇文章主要介绍了Java生成随机姓名、性别和年龄的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-10-01
  • jQuery Real Person验证码插件防止表单自动提交

    本文介绍的jQuery插件有点特殊,防自动提交表单的验证工具,就是我们经常用到的验证码工具,先给大家看看效果。效果图如下: 使用说明 需要使用jQuery库文件和Real Person库文件 同时需要自定义验证码显示的CSS样式 使用实例...2015-11-08
  • C#生成随机数功能示例

    这篇文章主要介绍了C#生成随机数功能,涉及C#数学运算与字符串操作相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • jQuery为动态生成的select元素添加事件的方法

    下面小编就为大家带来一篇jQuery为动态生成的select元素添加事件的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2016-09-01
  • php生成唯一数字id的方法汇总

    关于生成唯一数字ID的问题,是不是需要使用rand生成一个随机数,然后去数据库查询是否有这个数呢?感觉这样的话有点费时间,有没有其他方法呢?当然不是,其实有两种方法可以解决。 1. 如果你只用php而不用数据库的话,那时间戳+随...2015-11-24
  • PHP自动生成后台导航网址的最佳方法

    经常制作开发不同的网站的后台,写过很多种不同的后台导航写法。 最终积累了这种最写法,算是最好的吧...2013-09-29
  • php实现点击可刷新验证码

    验证码类文件 CreateImg.class.php <&#63;php class ValidationCode { private $width,$height,$codenum; public $checkcode; //产生的验证码 private $checkimage; //验证码图片 private $disturbColor = ''; /...2015-11-08
  • Jquery插件实现点击获取验证码后60秒内禁止重新获取

    通过jquery.cookie.js插件可以快速实现“点击获取验证码后60秒内禁止重新获取(防刷新)”的功能效果图:先到官网(http://plugins.jquery.com/cookie/)下载cookie插件,放到相应文件夹,代码如下:复制代码 代码如下: <!DOCTYPE ht...2015-03-15
  • 基于JavaScript实现验证码功能

    这篇文章主要介绍了基于JavaScript实现验证码功能的相关资料...2017-04-03
  • js生成随机数的方法实例

    js生成随机数主要用到了内置的Math对象的random()方法。用法如:Math.random()。它返回的是一个 0 ~ 1 之间的随机数。有了这么一个方法,那生成任意随机数就好理解了。比如实际中我们可能会有如下的需要: (1)生成一个 0 - 1...2015-10-21
  • 单击按钮发送验证码,出现倒计时的简单实例

    下面小编就为大家带来一篇单击按钮发送验证码,出现倒计时的简单实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧 代码...2017-07-06
  • PHP验证码生成与验证例子

    验证码是一个现在WEB2.0中常见的一个功能了,像注册、登录又或者是留言页面,都需要注册码来验证当前操作者的合法性,我们会看到有些网站没有验证码,但那是更高级的验证了,...2016-11-25
  • PHP生成不同颜色、不同大小的tag标签函数

    复制代码 代码如下:function getTagStyle(){ $minFontSize=8; //最小字体大小,可根据需要自行更改 $maxFontSize=18; //最大字体大小,可根据需要自行更改 return 'font-size:'.($minFontSize+lcg_value()*(abs($maxFo...2013-10-04
  • 基于Pytorch版yolov5的滑块验证码破解思路详解

    这篇文章主要介绍了基于Pytorch版yolov5的滑块验证码破解思路详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-02-25
  • Bootstrap中文本框的宽度变窄并且加入一副验证码图片的实现方法

    这篇文章主要介绍了Bootstrap中文本框的宽度变窄并且加入一副验证码图片的实现方法的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下...2016-06-24
  • 工信部的ICP备案网站登录时验证码一直输入不正确怎么回事

    工信部的ICP备案网站登录时验证码一直输入不正确怎么回事,为了防止一些机器采集人工信部对于查询验证做得识别度极低,所以许多的朋友都会发现输入验证码一直有问题了,那...2016-10-10
  • php中利用str_pad函数生成数字递增形式的产品编号

    解决办法:$str=”QB”.str_pad(($maxid[0]["max(id)"]+1),5,”0″,STR_PAD_LEFT ); 其中$maxid[0]["max(id)"]+1) 是利用max函数从数据库中找也ID最大的一个值, ID为主键,不会重复。 str_pad() 函数把字符串填充为指...2013-10-04