我用PHP模拟浏览器取验证码后该怎么在网页上显示出来呢,求知道的大神解答下,我下面的程序错在哪?<?php
header("Content-Type:image/gif charset=utf-8");
$cookiejar = realpath('cookie.txt');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://cjcx.jxbsu.com/sys/ValidateCode.aspx");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// 设置连接结束后保存cookie信息的文件
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookiejar);
$data = curl_exec($ch);
curl_close($ch);
imagepng($data);
imagedestroy($data);
?>验证码模拟登陆
header("Content-Type:image/gif charset=utf-8");
$cookiejar = realpath('cookie.txt');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://cjcx.jxbsu.com/sys/ValidateCode.aspx");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// 设置连接结束后保存cookie信息的文件
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookiejar);
$data = curl_exec($ch);
curl_close($ch);
imagepng($data);
imagedestroy($data);
?>验证码模拟登陆
//header("Content-Type:image/gif charset=utf-8");
$cookiejar = realpath('cookie.txt');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://cjcx.jxbsu.com/sys/ValidateCode.aspx");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// 设置连接结束后保存cookie信息的文件
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookiejar);
$data = curl_exec($ch);
curl_close($ch);
//imagepng($data);
//imagedestroy($data);//写到文件
//输出 IMG 标签 ~
echo '<img src=imgPath />';?>
语法: int imagepng(int im, string [filename]);
返回值: 整数
函数种类: 图形处理
好像大都是从文件加载的~
对于验证码,重点不是保存cookies,而是读取cookies发过去
换言之,你应该是在获取验证码前,访问某个地址获取cookies,再让curl用这个cookies去获取验证码
改为
$data = imagecreatefromstring(curl_exec($ch));
<?php
header("Content-Type:image/gif");
$cookiejar = realpath('cookie.txt');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://cjcx.jxbsu.com/sys/ValidateCode.aspx");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// 设置连接结束后保存cookie信息的文件
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookiejar);
$data = imagecreatefromstring(curl_exec($ch));curl_close($ch);
imagegif($data);
imagedestroy($data);
?>