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 文件上传全攻略
Apr 28 PHP
PHP var_dump遍历对象属性的函数与应用代码
Jun 04 PHP
PHP中调用ASP.NET的WebService的代码
Apr 22 PHP
在smarty中调用php内置函数的方法
Feb 07 PHP
php上传图片之时间戳命名(保存路径)
Aug 15 PHP
Laravel框架表单验证详解
Sep 04 PHP
9段PHP实用功能的代码推荐
Oct 14 PHP
PHP中iconv函数转码时截断字符问题的解决方法
Jan 21 PHP
PHP中开启gzip压缩的2种方法
Jan 31 PHP
php实现根据IP地址获取其所在省市的方法
Apr 30 PHP
ThinkPHP5.0多个文件上传后找不到临时文件的修改方法
Jul 30 PHP
ThinkPHP5分页paginate代码实例解析
Nov 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
PHP获取网站域名和地址的代码
2008/08/17 PHP
php 特殊字符处理函数
2008/09/05 PHP
PHP获取当前url的具体方法全面解析
2013/11/26 PHP
PHP常用排序算法实例小结【基本排序,冒泡排序,快速排序,插入排序】
2017/02/07 PHP
PHP 验证身份证是否合法的函数
2017/02/09 PHP
PHP自定义递归函数实现数组转JSON功能【支持GBK编码】
2018/07/17 PHP
smarty模板的使用方法实例分析
2019/09/18 PHP
JavaScript 动态创建VML的方法
2009/10/14 Javascript
jquery下将选择的checkbox的id组成字符串的方法
2010/11/28 Javascript
js数组的操作详解
2013/03/27 Javascript
js实现仿百度汽车频道选择汽车图片展示实例
2015/05/06 Javascript
Bootstrap每天必学之轮播(Carousel)插件
2016/04/25 Javascript
Angularjs通过指令监听ng-repeat渲染完成后执行脚本的方法
2016/12/31 Javascript
详谈jQuery.load()和Jsp的include的区别
2017/04/12 jQuery
原生JS实现简单的倒计时功能示例
2018/08/30 Javascript
angular2 NgModel模块的具体使用方法
2019/04/10 Javascript
NodeJs实现简易WEB上传下载服务器
2019/08/10 NodeJs
微信小程序和H5页面间相互跳转代码实例
2019/09/19 Javascript
Angular封装表单控件及思想总结
2019/12/11 Javascript
Vue分页效果与购物车功能
2019/12/13 Javascript
vue结合el-upload实现腾讯云视频上传功能
2020/07/01 Javascript
探索浏览器页面关闭window.close()的使用详解
2020/08/21 Javascript
[04:13]2018国际邀请赛典藏宝瓶Ⅱ饰品一览
2018/07/21 DOTA
[39:19]完美世界DOTA2联赛PWL S2 SZ vs LBZS 第二场 11.26
2020/11/30 DOTA
使用Python进行新浪微博的mid和url互相转换实例(10进制和62进制互算)
2014/04/25 Python
python通过pil将图片转换成黑白效果的方法
2015/03/16 Python
Python删除Java源文件中全部注释的实现方法
2017/08/30 Python
python装饰器实例大详解
2017/10/25 Python
Python学习之Anaconda的使用与配置方法
2018/01/04 Python
Python操作配置文件ini的三种方法讲解
2019/02/22 Python
Python如何筛选序列中的元素的方法实现
2019/07/15 Python
Python计算IV值的示例讲解
2020/02/28 Python
售后求职信范文
2014/03/15 职场文书
合作协议书怎么写
2014/04/18 职场文书
外贸会计专业自荐信
2014/06/22 职场文书
2015年小班保育员工作总结
2015/05/27 职场文书