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读取IMAP邮件
Oct 09 PHP
提升PHP速度全攻略
Oct 09 PHP
php 采集书并合成txt格式的实现代码
Mar 01 PHP
利用curl抓取远程页面内容的示例代码
Jul 23 PHP
PHP限制页面只能在微信自带浏览器访问的代码
Jan 15 PHP
PHP使用memcache缓存技术提高响应速度的方法
Dec 26 PHP
php查询mssql出现乱码的解决方法
Dec 29 PHP
Zend Framework分页类用法详解
Mar 22 PHP
php生成0~1随机小数的方法(必看)
Apr 05 PHP
基于laravel缓冲cache的用法详解
Oct 23 PHP
thinkphp框架无限级栏目的排序功能实现方法示例
Mar 29 PHP
实例化php类时传参的方法分析
Jun 05 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上传、管理照片示例
2006/10/09 PHP
建站常用13种PHP开源CMS比较
2009/08/23 PHP
PHP fgetcsv 定义和用法(附windows与linux下兼容问题)
2012/05/29 PHP
php中使用key,value,current,next和prev函数遍历数组的方法
2015/03/17 PHP
YII使用url组件美化管理的方法
2015/12/28 PHP
PHP设计模式之工厂模式实例总结
2017/09/01 PHP
php中pcntl_fork创建子进程的方法实例
2019/03/14 PHP
laravel框架 laravel-admin上传图片到oss的方法
2019/10/13 PHP
由document.body和document.documentElement想到的
2009/04/13 Javascript
JavaScript 开发规范要求(图文并茂)
2010/06/11 Javascript
js获取dom的高度和宽度(可见区域及部分等等)
2013/06/13 Javascript
用js提交表单解决一个页面有多个提交按钮的问题
2014/09/01 Javascript
详解AngularJS Filter(过滤器)用法
2015/12/28 Javascript
Webwork 实现文件上传下载代码详解
2016/02/02 Javascript
KnockoutJS 3.X API 第四章之事件event绑定
2016/10/10 Javascript
jQuery实现遮罩层登录对话框
2016/12/29 Javascript
Easyui Tree获取当前选择节点的所有顶级父节点
2017/02/14 Javascript
JavaScript实现开关等效果
2017/09/08 Javascript
localstorage实现带过期时间的缓存功能
2019/06/28 Javascript
详解Vue Cli浏览器兼容性实践
2020/06/08 Javascript
JavaScript this关键字指向常用情况解析
2020/09/02 Javascript
[00:34]DOTA2上海特级锦标赛 Spirit战队宣传片
2016/03/04 DOTA
python numpy数组的索引和切片的操作方法
2018/10/20 Python
python使用正则表达式来获取文件名的前缀方法
2018/10/21 Python
使用Python将字符串转换为格式化的日期时间字符串
2019/09/01 Python
python GUI库图形界面开发之PyQt5窗口控件QWidget详细使用方法
2020/02/26 Python
Python3如何判断三角形的类型
2020/04/12 Python
Pyinstaller打包Scrapy项目的实现步骤
2020/09/22 Python
Python利用socket模块开发简单的端口扫描工具的实现
2021/01/27 Python
Pottery Barn阿联酋:购买家具、家居装饰及更多
2019/12/08 全球购物
出纳工作岗位责任制
2014/02/02 职场文书
优秀乡村医生事迹材料
2014/05/28 职场文书
店长岗位职责
2015/02/11 职场文书
综合素质评价个性发展自我评价
2015/03/06 职场文书
2015年汽车销售经理工作总结
2015/04/27 职场文书
Python实现自动玩连连看的脚本分享
2022/04/04 Python