多数大学生出来选择的工作和专业无关
首页 > 专业知识

PHP5安装GD库的具体操作步骤

时间:2018-03-16 16:48:02 [来源]:郑州PHP培训学校

   PHP5安装GD库的具体操作步骤

  PHP5安装GD库首先需要进行的就是下载libpng库,然后还要下载freetype库,再下载GD库,最后进行编译PHP,重启apache即可完成PHP5安装GD库。
  大家对GD库应该有所了解,它是PHP进行图文操作时一个重要的库。那么今天我们就来具体讲解一下如何进行PHP5安装GD库的详细步骤,希望对有需要的朋友有所帮助。
  PHP5安装GD库1.下载libpng库,至少需要支持一种文件类型,如果需要其他的类型则另外下载http://nchc.dl.sourceforge.net/project/libpng/00-libpng-stable/1.2.40/libpng-1.2.40.tar.gz解压缩后,进入文件夹
  cd libpng-1.2.40
  mv scripts/makefile.linux ./Makefile #这里一定要使用script下的Makefile ,不要通过./configure生成
  make
  make install
  PHP5安装GD库2.下载freetype库,很多GD函数都需要这个库的支持http://ftp.twaren.net/Unix/NonGNU/freetype/freetype-2.3.5.tar.gz3.解压后
  cd freetype-2.3.5
  ./configure --prefix=/usr/local/freetype #这里指定freetype的安装目录,以便php编译时用到make
  make install
  PHP5安装GD库4.下载GD库
  从http://www.libgd.org上选择合适的版本下载解压后进入目录
  ./configure --prefix=/usr/local/gd2 --with-png --with-freetype #这里不需要制定freetype目录,但是需要制定gd库的安装路径
  make
  make install
  PHP5安装GD库5.编译PHP
  进入php源码目录
  ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql --without-sqlite --without-pdo-sqlite --with-gd=/usr/local/gd2 --with-freetype-dir=/usr/local/freetype/make
  make install
  重启apache即可完成PHP5安装GD库。
 
  如何运用PHP GD库生成验证码
  PHP GD库是PHP进行图像操作时的一个非常重要的库,我们下面就通过介绍PHP GD库生成验证码的方法来进一步加深对它的了解。
  当我们要使用PHP进行图像操作的时候,必然会使用到一个PHP GD库,它是一个很强大的库。今天我们要向大家介绍的就是PHP GD库如何生成验证码的相关方法。
  先在php.ini里增加一行引用:extension=php_gd2.dll重启apache。做一个测试页 var_dump(gd_info());输出数据表明PHP GD库引用成功。
  表单auth.html
  <html>
  <head>
  <meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
  <title>验证码</title>
  </head>
  <body>
  <h1>请输入验证码</h1>
  <form action="check_auth.php" method="post">
  <input name="auth" type="text">
  <img src="auth.php" border="0" />
  <input type="submit" value="提交">
  </form>
  </body>
  </html>
  PHP GD库生成验证码 auth.php
  <?php
  session_start();
  header("Content-type:image/png");
  $img_width=100;
  $img_height=20;
  srand(microtime()*100000);
  for($i=0;$i<4;$i++)
  {
  $new_number.=dechex(rand(0,15));
  }
  $_SESSION[check_auth]=$new_number;
  $new_number=imageCreate($img_width,$img_height);//创建图象ImageColorAllocate($new_number,255,255,255);  //设置背景色为白色for($i=0;$i<strlen($_SESSION[check_auth]);$i++){
  $font=mt_rand(3,5);
  $x=mt_rand(1,8) + $img_width*$i/4;
  $y=mt_rand(1,$img_height/4);
  $color=imageColorAllocate($new_number,mt_rand(0,100),mt_rand(0,150),mt_rand(0,200));//设置字符颜色imageString($new_number,$font,$x,$y,$_SESSION[check_auth][$i],$color);//输出字符}
  ImagePng($new_number);
  ImageDestroy($new_number);
  ?>
  PHP GD库提交页面 check_auth.php
  <?php
  session_start();
  $auth=$_POST['auth'];
  if(empty($auth))
  {
  echo '错误:验证码不能为空';
  die;
  }
  if($auth==$_SESSION['check_auth'])
  {
  echo '正确';
  }
  else
  {
  echo '错误:验证码输入错误';
  }
  ?>
  以上就是本文所介绍的PHP GD库生成验证码的相关知识,希望对大家有所帮助。
 
  PHP实现伪静态化页面的具体实现方式
  下面我们向大家介绍了两种PHP实现伪静态化页面的具体代码,其中包括通过URL Rewrite实现链接静态化的方法,这种方法不方便也不灵活。
  大家也许对PHP伪静态页面还比较陌生,今天我们就向大家具体讲解PHP实现伪静态化页面的具体代码,让大家对对PHP伪静态有一个更加深入的了解。
  PHP实现伪静态化页面方法一:
  在你的程序初始化时使用如下代码:
  <?php
  $Php2Html_FileUrl = $_SERVER["REQUEST_URI"];$Php2Html_UrlString = str_replace("/", "", strrchr($Php2Html_FileUrl, "/"));$Php2Html_UrlQueryStrList = explode("@", $Php2Html_UrlString);foreach($Php2Html_UrlQueryStrList as $Php2Html_UrlQueryStr){
  $Php2Html_TmpArray = explode("|", $Php2Html_UrlQueryStr);$_GET[$Php2Html_TmpArray[0]] = $Php2Html_TmpArray[1];}
  echo '假静态:$_GET变量<br />';
  print_r($_GET);
  ?>
  然后php中调用$_GET变量就像平常一样了。
  连接使用方式:
  ****.php/param1|1234@param2|4321
  和****.php?param1=1234?m2=4321一样。
  PHP实现伪静态化页面方法二:通过URL Rewrite实现链接静态化我们知道搜索引擎对于静态页面是非常友好的,因此很多网站通过生成静态页面等手段方便爬虫抓取自己网站的内容。但是有时候一些应用并不适合全部静态化,比如数据变化非常大的论坛/贴吧系统,这时候我们可以通过URL重写来实现链接的伪静态化,即网站对外使用静态化的链接,而内部实际上仍然使用动态页面的 URL形式。比如像这样一个链接:http://www.ci123.com/abc.php?action=a&id=1,我们可以改写成http://www.ci123.com/abc/a/1.html的形式。这是搜索引擎优化最重要的内容之一,它还有一个额外的好处,可以使页面有一个永久链接,即便以后网站系统内部链接有变化,通过适当改变Rewrite规则就可以保证原先的外部URL一直有效。
  下面介绍2种简单的Apache+PHP下实现URL重写的方法,第一种适合有服务器配置权限的用户,第二种适合租用空间的用户,也作为我近期的学习心得的整理。
  1、对于有服务器配置权限的用户,推荐使用Apache的mod_rewrite模块,这里假设已经安装好mod_rewrite模块。打开Apache的配置文件,找到相应主机的部分,添加以下代码:
  RewriteEngine On
  RewriteRule ^/abc/([a-z]+)/([0-9]+).html$ /abc.php?action=$1&id=$2然后在shell里执行service httpd reload,让Apache重新载入配置就好了。现在在PHP页面里面我们可以把链接写成 abc/a/1.html的形式,Apache在解析这个 URL的时候会rewrite成abc.php?action=a&id=1的形式,并返回正确的页面。运用正则表达式我们可以实现几乎任何我们想要的链接形式,mod_rewrite模块的功能异常强大,这里只是一个及其简单的应用。
  2、对于租用空间的用户,一般都没有办法修改Apache的配置,这里有个变通的方法,原理是这样的:当要传递参数访问PHP 页面时,正常情况下是通过自动全局变量$_GET来获得,比如上面的链接,在页面里可以通过$_GET['action'] 和 $_GET['id'] 来获得,重写URL后就不行了。现在在每个页面里require一个url_rewrite.php文件,里面代码如下:
  $filename = basename($_SERVER['SCRIPT_NAME']);if (strtolower($filename) == "abc.php"){
  if (!empty($_GET[id])){
  $id = intval($_GET[id]);
  $action = intval($_GET[action]);
  }
  else {
  $nav = $_SERVER["REQUEST_URI"];
  $script = $_SERVER["SCRIPT_NAME"];
  $nav = ereg_replace("^$script", "", urldecode($nav));$vars = explode("/", $nav);
  $action = intval($vars[1]);
  $id = intval($vars[2]);
  }
  }
  这样$action和$id也得到了,页面里链接可以写成abc.php/a/1的形式来访问相应页面。
  需要注意的是这种PHP实现伪静态化页面方法效率较第一种低,第一种方法是在WEB服务器URL解析过程中实现的,而这里是在PHP页面解析过程里实现的,第2种方法只是变通,不得已而为之,要修改链接形式很不方便也不灵活。
 

上一篇:PHP超时处理全面总结

下一篇:PHP伪静态的四种方法总结