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 相关文章推荐
PHP stream_context_create()作用和用法分析
Mar 29 PHP
redis 队列操作的例子(php)
Apr 12 PHP
解析PHP中intval()等int转换时的意外异常情况
Jun 21 PHP
PHP利用MySQL保存session的实现思路及示例代码
Sep 09 PHP
php通过array_unshift函数添加多个变量到数组前端的方法
Mar 18 PHP
配置eAccelerator和XCache扩展来加速PHP程序的执行
Dec 22 PHP
php HTML无刷新提交表单
Apr 05 PHP
浅谈PHP中的数据传输CURL
Sep 06 PHP
PHP利用正则表达式将相对路径转成绝对路径的方法示例
Feb 28 PHP
解决form中action属性后面?传递参数 获取不到的问题
Jul 21 PHP
[原创]php token使用与验证示例【测试可用】
Aug 30 PHP
CI(CodeIgniter)框架中URL特殊字符处理与SQL注入隐患分析
Feb 28 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
php源码加密 仿微盾PHP加密专家(PHPCodeLock)
2010/05/06 PHP
laravel安装和配置教程
2014/10/29 PHP
php进程daemon化的正确实现方法
2018/09/06 PHP
在次封装easyui-Dialog插件实现代码
2010/11/14 Javascript
自动最大化窗口的Javascript代码
2013/05/22 Javascript
JavaScript表格常用操作方法汇总
2015/04/15 Javascript
JS实现双击屏幕滚动效果代码
2015/10/28 Javascript
JS实现表单验证功能(验证手机号是否存在,验证码倒计时)
2016/10/11 Javascript
jQuery实现ToolTip元素定位显示功能示例
2016/11/23 Javascript
Bootstrap常用组件学习(整理)
2017/03/24 Javascript
Node.js中的http请求客户端示例(request client)
2017/05/04 Javascript
JS设计模式之访问者模式定义与用法分析
2018/02/05 Javascript
el-select数据过多懒加载的解决(loadmore)
2019/05/29 Javascript
mpvue实现小程序签到金币掉落动画(api实现)
2019/10/17 Javascript
Vue基于iview table展示图片实现点击放大
2020/08/05 Javascript
JavaScript枚举选择jquery插件代码实例
2020/11/17 jQuery
[01:00:11]DOTA2-DPC中国联赛 正赛 CDEC vs DLG BO3 第一场 2月7日
2021/03/11 DOTA
天翼开放平台免费短信验证码接口使用实例
2013/12/18 Python
Python中装饰器兼容加括号和不加括号的写法详解
2017/07/05 Python
Python序列循环移位的3种方法推荐
2018/04/09 Python
python 使用poster模块进行http方式的文件传输到服务器的方法
2019/01/15 Python
详解如何减少python内存的消耗
2019/08/09 Python
python实现while循环打印星星的四种形状
2019/11/23 Python
python 类之间的参数传递方式
2019/12/20 Python
html5与css3小应用
2013/04/03 HTML / CSS
程序设计HTML5 Canvas API
2013/04/08 HTML / CSS
Geekbuying波兰:购买中国电子产品
2019/10/20 全球购物
Belstaff英国官方在线商店:Belstaff.co.uk
2021/02/09 全球购物
怎样从/向数据文件读/写结构
2014/11/23 面试题
专业实习自我鉴定
2013/10/29 职场文书
计算机系毕业生推荐信
2013/11/06 职场文书
大学生求职计划书
2014/04/30 职场文书
刘公岛导游词
2015/02/05 职场文书
国王的演讲观后感
2015/06/03 职场文书
java项目构建Gradle的使用教程
2022/03/24 Java/Android
vue组件冲突之引用另一个组件出现组件不显示的问题
2022/04/13 Vue.js