CURL 取到验证码乱码了

zhimwin 2014-10-21 06:39:31
网页打开时正常显示验证码的,但是用chrome看到的反回和 curl都是乱码 这是这么回事
附上
http://dlpa.dl.gov.cn/zzb/authImg
...全文
394 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
解决了吗?没解决的话 可以给你发一下我写的curl
sesisungest 2014-10-23
  • 打赏
  • 举报
回复
感觉,编码问题
xuzuning 2014-10-23
  • 打赏
  • 举报
回复
你没有设置 CURLOPT_RETURNTRANSFER 属性 $image=curl_exec($ch); 不会得到正确的值 $cookieJar=tempnam('tmp', cookieJar); 是局部变量,获取到的 cookie 不能被共享。虽然对于仅读取图片没有影响
zhimwin 2014-10-22
  • 打赏
  • 举报
回复
引用 11 楼 xuzuning 的回复:
所以说我才要让你贴出你的代码 验证码必然要用到 session,而 session 的首次传递,可能在表单页,也可能在验证码图片,还可能在相关的其他文件加载时。当然这都是可以探测到的 只是光用文字描述,一下难以说的清楚
嗯好的,这个是类里面拉出来的

	private function getCaptcha(){
		$cookieJar=tempnam('tmp', cookieJar);
	 	$header=array(
				'Host: dlpa.dl.gov.cn',
				'Connection: keep-alive',
				'Cache-Control: max-age=0',
				'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
				'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.104 Safari/537.36',
				'Referer: http://dlpa.dl.gov.cn/zzb/dclist_16.html',
				'Accept-Encoding: gzip,deflate,sdch',
				'Accept-Language: zh-CN,zh;q=0.8',
				'RA-Ver: 2.7.0',
				'RA-Sid: B7F612F3-20140422-090030-f3dd41-07c579',
				
		); //不知道它有没有验证什么所以直接整个头复制下来了
		
		$this->url='http://dlpa.dl.gov.cn/zzb/authImg';
		$ch=curl_init($this->url);
		curl_setopt($ch, CURLOPT_COOKIEJAR, $cookieJar);
		curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
		$image=curl_exec($ch);
		curl_close($ch);
		$fp=fopen('captcha.jpg', 'w+');
		fwrite($fp, $image);
	}
echo '<img src="captcha.jpg"><br />'


码无边 2014-10-22
  • 打赏
  • 举报
回复
文件的编码是否是utf-8无bom头?
xuzuning 2014-10-22
  • 打赏
  • 举报
回复
所以说我才要让你贴出你的代码 验证码必然要用到 session,而 session 的首次传递,可能在表单页,也可能在验证码图片,还可能在相关的其他文件加载时。当然这都是可以探测到的 只是光用文字描述,一下难以说的清楚
zhimwin 2014-10-22
  • 打赏
  • 举报
回复
引用 8 楼 zy205817 的回复:
文件的编码是否是utf-8无bom头?
刚刚听说bom头这个东西 万分感谢。 我百度了一下我猜我如果是直接保存curl结果到本地是不会有的吧?
xuzuning 2014-10-22
  • 打赏
  • 举报
回复
在网页中显示,必须通过 img 标签
zhimwin 2014-10-22
  • 打赏
  • 举报
回复
引用 7 楼 xuzuning 的回复:
在网页中显示,必须通过 img 标签
那保存的时候该怎么保存 我是直接将curl结果保存下来 然后用img标签输出来,但是不可以
zhimwin 2014-10-22
  • 打赏
  • 举报
回复
引用 2 楼 jordan102 的回复:
头部加上一句:header("content-type:image/jpeg");
还有其他方法没有呢
zhimwin 2014-10-22
  • 打赏
  • 举报
回复
引用 1 楼 xuzuning 的回复:
你是如何写 curl 的?
我就是加了个cookiejar,然后返回的东西存到本地 之后echo html显示图片和其他文字信息
zhimwin 2014-10-22
  • 打赏
  • 举报
回复
引用 3 楼 fdipzone 的回复:

header('content-type:image/jpeg');
$authImg = file_get_contents('http://dlpa.dl.gov.cn/zzb/authImg'); 
echo $authImg;
我有加上这个 可是我想跟其它文字信息 一起输出去
傲雪星枫 2014-10-21
  • 打赏
  • 举报
回复

header('content-type:image/jpeg');
$authImg = file_get_contents('http://dlpa.dl.gov.cn/zzb/authImg'); 
echo $authImg;
一起混吧 2014-10-21
  • 打赏
  • 举报
回复
头部加上一句:header("content-type:image/jpeg");
xuzuning 2014-10-21
  • 打赏
  • 举报
回复
你是如何写 curl 的?

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧