PHP文字转图片功能原理与实现方法分析


Posted in PHP onAugust 31, 2017

本文实例讲述了PHP文字转图片功能。分享给大家供大家参考,具体如下:

这项功能主要用于对邮箱地址、手机等可能被网络爬虫抓取的重要信息的处理。将文字转化为图片绝对是个好注意。验证码的基本生成原理也与此差不多,只是对再对文字转化为图片的生成过程再复杂化,让扫描机器无法识别。php的文字转图片很简单,先在php的安装目录打开php.ini,找到extension=php_gd2.dll,将其前面的引号去掉,打开php的gd2扩展库,就能直接使用php的关键字,将文字转图片。

PHP文字转图片功能原理与实现方法分析

目录结构如下,img_generator.php是文字转图片所处理的php,index.html是呈现给用户的页面。

PHP文字转图片功能原理与实现方法分析

index.html的代码非常非常简单,搞个img标签,里面的src就写img_generator.php,然后后面带一个text参数,向img_generator.php发送一个Get请求,img_generator.php这个页面本质是一个根据参数,所产生的一张图片。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>图片测试</title>
</head>
<body>
<img src="img_generator.php?text=abc@test.com">
</body>
</html>

img_generator.php的代码如下,通过$_REQUEST["text"];拿到index.html中的img标签传递过来的text阐述,之后用一系列的php关键字,也就是固有的方法生成的图片即可。

<?php
  $text=$_REQUEST["text"];//显示的文字
  $size=12;//字体大小
  $font="c:/windows/fonts/SIMHEI.TTF";//字体类型,这里为黑体,具体请在windows/fonts文件夹中,找相应的font文件
  $img=imagecreate(500,24);//创建一个长为500高为16的空白图片
  imagecolorallocate($img,0xff,0xff,0xff);//设置图片背景颜色,这里背景颜色为#ffffff,也就是白色
  $black=imagecolorallocate($img,0x00,0x00,0x00);//设置字体颜色,这里为#000000,也就是黑色
  imagettftext($img,$size,0,0,16,$black,$font,$text);//将ttf文字写到图片中
  header('Content-Type: image/png');//发送头信息
  imagepng($img);//输出图片,输出png使用imagepng方法,输出gif使用imagegif方法
?>

实质上,与《php投票系统之增加与删除投票(管理员篇)》中的原理是一样的。

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
一个程序下载的管理程序(二)
Oct 09 PHP
杏林同学录(四)
Oct 09 PHP
Zend Studio for Eclipse的java.lang.NullPointerException错误的解决方法
Dec 06 PHP
PHP中防止直接访问或查看或下载config.php文件的方法
Jul 07 PHP
PHP跳转页面的几种实现方法详解
Jun 08 PHP
PHP CodeIgniter框架的工作原理研究
Mar 30 PHP
PHP判断是否为空的几个函数对比
Apr 21 PHP
制作个性化的WordPress登陆界面的实例教程
May 21 PHP
删除PHP数组中头部、尾部、任意元素的实现代码
Apr 10 PHP
PHP封装的XML简单操作类完整实例
Nov 13 PHP
PHP 多任务秒级定时器的实现方法
May 13 PHP
PHP创建XML的方法示例【基于DOMDocument类及SimpleXMLElement类】
Sep 10 PHP
laravel如何开启跨域功能示例详解
Aug 31 #PHP
Laravel构建即时应用的一种实现方法详解
Aug 31 #PHP
[原创]PHP实现字节数Byte转换为KB、MB、GB、TB的方法
Aug 31 #PHP
PHP下 Mongodb 连接远程数据库的实例代码
Aug 30 #PHP
php实现与python进行socket通信的方法示例
Aug 30 #PHP
利用PHP访问MySql数据库的逻辑操作以及增删改查的实例讲解
Aug 30 #PHP
PHP Socket网络操作类定义与用法示例
Aug 30 #PHP
You might like
SONY ICF-SW07收音机电路分析
2021/03/02 无线电
PHP 数组教程 定义数组
2009/10/23 PHP
php抓取https的内容的代码
2010/04/06 PHP
腾讯QQ php程序员面试题目整理
2010/06/08 PHP
解析array splice的移除数组中指定键的值,返回一个新的数组
2013/07/02 PHP
php动态生成缩略图并输出显示的方法
2015/04/20 PHP
ThinkPHP安装和设置
2015/07/27 PHP
thinkphp下MySQL数据库读写分离代码剖析
2017/04/18 PHP
PHP 传输会话curl函数的实例详解
2017/09/12 PHP
Smarty模板类内部原理实例分析
2019/07/03 PHP
js点击页面其它地方将某个显示的DIV隐藏
2012/07/12 Javascript
让低版本浏览器支持input的placeholder属性(js方法)
2013/04/03 Javascript
JS实现固定在右下角可展开收缩DIV层的方法
2015/02/13 Javascript
JS的框架Polymer中的dom-if和is属性使用说明
2015/07/29 Javascript
简述Matlab中size()函数的用法
2016/03/20 Javascript
JavaScript中instanceof运算符的使用示例
2016/06/08 Javascript
jquery中绑定事件的异同
2017/02/28 Javascript
javascript  数组排序与对象排序的实例
2017/07/17 Javascript
详解angular应用容器化部署
2018/08/14 Javascript
angular 实现同步验证器跨字段验证的方法
2019/04/11 Javascript
vue 清空input标签 中file的值操作
2020/07/21 Javascript
基于hashlib模块--加密(详解)
2017/06/21 Python
python中logging包的使用总结
2018/02/28 Python
Django项目中包含多个应用时对url的配置方法
2018/05/30 Python
python 扩展print打印文件路径和当前时间信息的实例代码
2019/10/11 Python
基于YUV 数据格式详解及python实现方式
2019/12/09 Python
波兰品牌内衣及泳装网上商店:Astratex.pl
2017/02/03 全球购物
大学同学聚会邀请函
2014/01/29 职场文书
搞笑征婚广告词
2014/03/17 职场文书
艺术节开幕词
2015/01/28 职场文书
公司放假通知范文
2015/04/14 职场文书
党风廉政建设心得体会
2019/05/21 职场文书
vscode中使用npm安装babel的方法
2021/08/02 Javascript
将MySQL的表数据全量导入clichhouse库中
2022/03/21 MySQL
Python实现视频自动打码的示例代码
2022/04/08 Python
MyBatis核心源码深度剖析SQL语句执行过程
2022/05/20 Java/Android