开始PHP的应用,这节来制作验证码。
做验证码可以利用PHP的GD库来绘制。所以必须启用GD库,而在Linux环境,加载外在库和windows有些不同,特别是在suse,它的php.ini的配置也不同,大可归于RPM的PHP,和最原始的源码还是有点区别。一开始我还以为GD库没启用,导致图片显示不出来,但后来又发现GD库本来就已经有了。
想知道到底有没有,可以查找一下,suse也都是用rpm格式的,所以我们可以利用以下命令。
linux-k2b4:/fantlam/tmp # rpm -qa|grep php5
php5-5.2.11-0.1
php5-ctype-5.2.11-0.1
php5-gd-5.2.11-0.1
php5-zlib-5.2.11-0.1
php5-pgsql-5.2.11-0.1
php5-ldap-5.2.11-0.1
php5-json-5.2.11-0.1
php5-sqlite-5.2.11-0.1
php5-calendar-5.2.11-0.1
php5-sockets-5.2.11-0.1
php5-mysql-5.2.11-0.1
php5-odbc-5.2.11-0.1
php5-hash-5.2.11-0.1
php5-tokenizer-5.2.11-0.1
php5-xmlreader-5.2.11-0.1
php5-mbstring-5.2.11-0.1
php5-bcmath-5.2.11-0.1
php5-sysvshm-5.2.11-0.1
php5-bz2-5.2.11-0.1
php5-xmlrpc-5.2.11-0.1
php5-ncurses-5.2.11-0.1
php5-posix-5.2.11-0.1
php5-pear-5.2.11-0.1
php5-exif-5.2.11-0.1
php5-mcrypt-5.2.11-0.1
php5-pdo-5.2.11-0.1
php5-xmlwriter-5.2.11-0.1
php5-dom-5.2.11-0.1
php5-gettext-5.2.11-0.1
php5-gmp-5.2.11-0.1
php5-shmop-5.2.11-0.1
php5-dbase-5.2.11-0.1
php5-xsl-5.2.11-0.1
php5-curl-5.2.11-0.1
php5-fastcgi-5.2.11-0.1
apache2-mod_php5-5.2.11-0.1
php5-openssl-5.2.11-0.1
php5-pcntl-5.2.11-0.1
php5-sysvmsg-5.2.11-0.1
php5-snmp-5.2.11-0.1
php5-imap-5.2.11-0.1
php5-iconv-5.2.11-0.1
php5-soap-5.2.11-0.1
php5-wddx-5.2.11-0.1
php5-sysvsem-5.2.11-0.1
php5-ftp-5.2.11-0.1
可以看到gd已经有了。
再来看看php.ini的配置,可以发现它是用extension_dir = /usr/lib/php5/extensions来加载
我们到/usr/lib/php5/extensions里面看,也发现gd.so也已经加载了。
代码:
<?php
$im=ImageCreate(100,40) or die("create image error");
//颜色
$black=imagecolorallocate($im,0,0,0);
$white=imagecolorallocate($im,255,255,255);
//$color=imagecolorallocate($im,rand(0,255),rand(0,255),rand(0,255));
$str="fantlam";
imagefill($im,0,0,$black);
imagestring($im,5,15,10,$str,$white);
//划线
for($i=0;$i<5;$i++){
$color=imagecolorallocate($im,rand(0,255),rand(0,255),rand(0,255));
imageline($im,rand(0,100),rand(0,40),rand(0,100),rand(0,40),$color);
}
//画点
for($i=0;$i<200;$i++){
$color=imagecolorallocate($im,rand(0,255),rand(0,255),rand(0,255));
imagesetpixel($im,rand()%100,rand()%40,$color);
}
header("Content-type:image/jpeg");
imagejpeg($im);
imagedestroy($im);
?>
可以看到代码成功显示了。
当然这是非常简单的验证码,和真正应用上的还是有一定的距离,这段只是简单说明PHP是如何绘制图像的。
分享到:
相关推荐
opensuse官方入门手册3 opensuse官方入门手册3 opensuse官方入门手册3 opensuse官方入门手册3
openSUSE Leap 是最主要的GNU/Linux发行版之一,并且也是历史最为悠久的发行版之 一。 openSUSE Leap 使用源自 SUSE Linux Enterprise 的内核系统,但带有最新的硬件支 持、桌面环境和图形程序。 每年发布一个主...
opensuse官方入门手册2 opensuse官方入门手册2 opensuse官方入门手册2
OpenSUSE的特色功能之一是YaST2,这是一个用于系统管理的集成工具,具有Web前端WebYast和命令行后端Zypper。systemd提供了更快的启动和引导功能,12.2版本中引入了快速引导。GRUB2作为默认引导加载器,Plymouth提供...
微软提供openSUSE Leap 42.2版本,国内已经没有...特制作 openSUSE Leap 42.3版本,内置已经更新为阿里云源。系统已经更新到当前最新。喜欢openSUSE Leap 42系列的有福啦。解压后,点击openSUSE-42.exe即可安装使用。
openSUSE 11.4 解码器安装(MP3 等) 在 openSUSE 11.4 系统中,安装解码器是播放多媒体文件的必备步骤。下面将详细介绍如何安装解码器,以便播放 MP3 音频等多媒体文件。 添加软件仓库 首先,我们需要添加两个...
OpenSUSE 11.0 虽然已经较为陈旧,但对于学习Linux基础和理解操作系统工作原理仍是一个良好的平台。随着不断的实践和探索,你会发现Linux世界充满了无限的可能性。希望这个新手安装指南能帮助你顺利开启 OpenSUSE 的...
opensuse11.2系统安装资源,可以直接下载,解压安装opensuse11.2系统
在 openSUSE 11.2 的 KDE 版本中,设计团队精心制作了一系列精美的壁纸,这些壁纸不仅展示了 openSUSE 的独特美学,也体现了开源社区的艺术创造力。这些壁纸通常位于系统的 `/usr/share/wallpapers` 目录下,供用户...
openSUSE 默认使用 KDE 桌面环境,但是我们可以选择使用 GNOME 桌面环境,新版 openSUSE 带来了 GNOME 3。 在分区设置中,openSUSE 会默认帮你划分几个分区,以供 openSUSE 使用。但是,我们需要选择自定义分区,...
opensuse环境搭建 opensuse samba
OpenSuse Linux 系统安装包
opensuse 官方 入门 手册1 opensuse 官方 入门 手册1 opensuse 官方 入门 手册1
在本文中,我们将详细探讨如何在openSUSE 13.2版本上安装MATE桌面环境,并确保通过rp-pppoe软件成功拨号上网。openSUSE是一个流行的Linux发行版,具有强大的社区支持和丰富的软件包库。MATE桌面环境是一种用户友好的...
尽管openSUSE 12.3现在已经有些过时,但它提供的安装体验和对新手的友好度仍值得学习。随着技术的发展,现在的openSUSE Leap和Tumbleweed版本在安装流程上也有了更多优化,但基本步骤仍相似,只是在细节和功能上有所...
参加黑网rebr4ebvtgrb个r不r
制作Linux的U盘启动盘,必须要用的syslinux。 专为opensuse 11.x下载的版本,不一定适合其他linux版本,请慎重使用; 其它版本,可以在此搜索下载; http://rpm.pbone.net/index.php3
### Opensuse11.0 软件源添加详解 #### 一、引言 在Linux环境下,软件的安装往往需要通过添加特定的软件源来实现。这些软件源相当于一个庞大的仓库,存放着各种各样的软件包。对于Opensuse11.0来说,合理地配置...
openSUSE 中 VLC 无法播放视频解决方法 openSUSE 是一个基于 Linux 的操作系统,它具有强大的软件仓库和丰富的社区支持。然而,在 openSUSE 中安装 VLC 后,默认情况下无法播放某些格式的视频,例如 MKV 格式的视频...