A. 用php的file_get_content函数读取图片为什么得到的字符串是乱码
读出来是乱码是正常的,毕竟图片是二进制文件,直接写入文件就可以了,你输出的时候声明是图片的头就没问题了
B. 求 PHP 图片验证码类 给出详细调用方法 谢谢!!!
[code.php]
<?php
/**
*验证码图片
*/
session_start();
Header("Content-type:image/gif");
/*
*初始化
*/
$border=0;//是否要边框1要:0不要
$how=4;//验证码位数
$w=$how*15;//图片宽度
$h=20;//图片高度
$fontsize=10;//字体大小
$alpha="abcdefghijkmnpqrstuvwxyz";//验证码内容1:字母
$number="23456789";//验证码内容2:数字
$randcode="";//验证码字符串初始化
srand((double)microtime()*1000000);//初始化随机数种子
$im=ImageCreate($w,$h);//创建验证图片
/*
*绘制基本框架
*/
$bgcolor=ImageColorAllocate($im,255,255,255);//设置背景颜色
ImageFill($im,0,0,$bgcolor);//填充背景色
if($border)
{
$black=ImageColorAllocate($im,0,0,0);//设置边框颜色
ImageRectangle($im,0,0,$w-1,$h-1,$black);//绘制边框
}
/*
*逐位产生随机字符
*/
for($i=0;$i<$how;$i++)
{
$alpha_or_number=mt_rand(0,1);//字母还是数字
$str=$alpha_or_number?$alpha:$number;
$which=mt_rand(0,strlen($str)-1);//取哪个字符
$code=substr($str,$which,1);//取字符
$j=!$i?4:$j+15;//绘字符位置
$color3=ImageColorAllocate($im,mt_rand(0,100),mt_rand(0,100),mt_rand(0,100));//字符随即颜色
ImageChar($im,$fontsize,$j,3,$code,$color3);//绘字符
$randcode.=$code;//逐位加入验证码字符串
}
/*
*如果需要添加干扰就将注释去掉
*
*以下for()循环为绘背景干扰线代码
*/
/*+-------------------------------绘背景干扰线开始--------------------------------------------+*/
for($i=0;$i<5;$i++)//绘背景干扰线
{
$color1=ImageColorAllocate($im,mt_rand(0,255),mt_rand(0,255),mt_rand(0,255));//干扰线颜色
ImageArc($im,mt_rand(-5,$w),mt_rand(-5,$h),mt_rand(20,300),mt_rand(20,200),55,44,$color1);//干扰线
}
/*+-------------------------------绘背景干扰线结束--------------------------------------+*/
/*
*如果需要添加干扰就将注释去掉
*
*以下for()循环为绘背景干扰点代码
*/
/*+--------------------------------绘背景干扰点开始------------------------------------------+*/
/*
for($i=0;$i<$how*40;$i++)//绘背景干扰点
{
$color2=ImageColorAllocate($im,mt_rand(0,255),mt_rand(0,255),mt_rand(0,255));//干扰点颜色
ImageSetPixel($im,mt_rand(0,$w),mt_rand(0,$h),$color2);//干扰点
}
*/
/*+--------------------------------绘背景干扰点结束------------------------------------------+*/
//把验证码字符串写入session方便提交登录信息时检验验证码是否正确例如:$_POST['randcode']=$_SESSION['randcode']
$_SESSION['randcode']=$randcode;
/*绘图结束*/
Imagegif($im);
ImageDestroy($im);
/*绘图结束*/
?>
[调用方法]
<SCRIPTLANGUAGE="JavaScript">
<!--
functionreloadcode(){
vard=newDate();
document.getElementById('safecode').src="/code.php?t="+d.toTimeString()
}
//-->
</SCRIPT>
验证码:<inputname="chknumber"type="text"maxlength="4"class="chknumber_input"/><imgsrc='code.php'id="safecode"onclick="reloadcode()"title="看不清楚?点击切换!"></img>
C. PHP能够实现图片转文字的功能吗如果可以的话能告诉一下思路和需要用到的函数
估计不能
否则的话,验证码图片就是多次一举失去了意义
D. php如何实现,远程传一张照片回来,在数据库进行比对识别,有相同的就取出相关信息
数据库,你可能保存有图片的文件名,大小,格式化,来本地文件路径,
把传过来的图片的这三个特征在数据库查找一下,如果存在,就几乎可以判断是同一个文件,
如果你要更准确一些,就用file_get_contents()把文件内容读出来进行对比。
E. php中如何调用数据库中的图片并且显示到页面
php是采用二进制形式存储图片及读取显示的,首先通过代码创建数据表,然后上传图片服务器再通过浏览器显示,具体编程代码举例:
1、首先需要创建数据表,具体代码如下图所示。
F. php中如何从数据库中读取图片
<?php
//将图片存进数据库再读出,注意存储图片的字段类型必须为blob
$user=’root’;
$password=’root’;
$db=’test’;
$connect=mysql_connect(‘localhost’,$user,$password);
mysql_set_charset(‘utf8′,$connect);
mysql_select_db($db);
$photo = “0x”.bin2hex(file_get_contents(“./test.jpg”));
$sql=”INSERT INTO `test`.`test` (`photo`) VALUES ($photo);”;//$photo不需要用引号,切记
mysql_query($sql);
//$result=mysql_query(“SELECT *
//FROM `test`
//LIMIT 0 , 30〃);
//$img=mysql_fetch_array($result);
//echo $img['photo'];
?>