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学习 字符串课件
Jun 15 PHP
PHP字符串处理的10个简单方法
Jun 30 PHP
php htmlspecialchars()与shtmlspecialchars()函数的深入分析
Jun 05 PHP
PHP 二维数组根据某个字段排序的具体实现
Jun 03 PHP
PHP开发框架kohana3 自定义路由设置示例
Jul 14 PHP
php5.4以下版本json不支持不转义内容中文的解决方法
Jan 13 PHP
Mac OS下配置PHP+MySql环境
Feb 25 PHP
两种php给图片加水印的实现代码
Apr 18 PHP
PHP封装的数据库保存session功能类
Jul 11 PHP
Yii2中多表关联查询hasOne hasMany的方法
Feb 15 PHP
[原创]PHP实现生成vcf vcard文件功能类定义与使用方法详解【附demo源码下载】
Sep 02 PHP
PHP设计模式之装饰器模式实例详解
Feb 07 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中动态HTML的输出技术
2006/10/09 PHP
PHP生成静态页
2006/11/25 PHP
判断PHP数组是否为空的代码
2011/09/08 PHP
php支付宝手机网页支付类实例
2015/03/04 PHP
经典PHP加密解密函数Authcode()修复版代码
2015/04/05 PHP
PHP实现 APP端微信支付功能
2018/06/22 PHP
js玩一玩WSH吧
2007/02/23 Javascript
javascript或asp实现的判断身份证号码是否正确两种验证方法
2009/11/26 Javascript
jquery高效反选具体实现
2013/05/05 Javascript
$(document).ready(function() {})不执行初始化脚本
2014/06/19 Javascript
JavaScript静态类型检查工具FLOW简介
2015/01/06 Javascript
JavaScript获取浏览器信息的方法
2015/11/20 Javascript
Jquery操作Ajax方法小结
2015/11/29 Javascript
微信小程序 数据访问实例详解
2016/10/08 Javascript
vue中用动态组件实现选项卡切换效果
2017/03/25 Javascript
package.json文件配置详解
2017/06/15 Javascript
vue2.0 资源文件assets和static的区别详解
2018/04/08 Javascript
angularJS开发注意事项
2018/05/26 Javascript
在vue中解决提示警告 for循环报错的方法
2018/09/28 Javascript
vue模式history下在iis中配置流程
2019/04/17 Javascript
WEB前端性能优化的7大手段详解
2020/02/04 Javascript
浅析JavaScript 函数防抖和节流
2020/07/13 Javascript
[51:05]DOTA2上海特级锦标赛主赛事日 - 5 败者组决赛Liquid VS EG第一局
2016/03/06 DOTA
[55:48]VGJ.S vs TNC Supermajor 败者组 BO3 第二场 6.6
2018/06/07 DOTA
python批量制作雷达图的实现方法
2016/07/26 Python
Python利用正则表达式实现计算器算法思路解析
2018/04/25 Python
python3 unicode列表转换为中文的实例
2018/10/26 Python
用Python识别人脸,人种等各种信息
2019/07/15 Python
Django models filter筛选条件详解
2020/03/16 Python
python安装dlib库报错问题及解决方法
2020/03/16 Python
Pytorch框架实现mnist手写库识别(与tensorflow对比)
2020/07/20 Python
举例详解CSS3中的Transition
2015/07/15 HTML / CSS
CSS超出文本指定宽度用省略号代替和文本不换行
2016/05/05 HTML / CSS
国旗下的演讲稿
2014/05/08 职场文书
推荐信怎么写
2014/05/09 职场文书
2015年中学体育教师工作总结
2015/10/23 职场文书