Heim >Backend-Entwicklung >PHP-Tutorial >获取图片问题

获取图片问题

WBOY
WBOYOriginal
2016-06-23 13:30:401042Durchsuche

http://api.94qing.com/verify.php
这个地址 
试了好多次不行 希望指导怎么获取这个地址的验证码写到本地目录并显示


回复讨论(解决方案)

获取到本地目录并显示...你的意图是?

@PhpNewnew 显示验证码 

获取到本地目录并显示...你的意图是?


获取到验证码 显示在网站要求用户输入验证码后继续调用该网站

我没看懂你的意思:
本地是指你自己的网站吗?如果是有两种方法:
1、获取图片问题
2|

$img=file_get_contents("http://api.94qing.com/verify.php");header("content-type:image/jpeg");echo $img;


希望对你有帮助

我没看懂你的意思:
本地是指你自己的网站吗?如果是有两种方法:
1、获取图片问题
2|

$img=file_get_contents("http://api.94qing.com/verify.php");header("content-type:image/jpeg");echo $img;


希望对你有帮助


那么获取改图片保存本地再读出呢

file_put_contents('图片文件名', $img);


但你这个连接是个验证码图片,带有 sessionID
当普通图片处理是不行的

想跨域....这个你要是做成个客户端 保持连接 那还是可以的...要是按照你现在的逻辑 本地网站套别人的网站...那你直接引用他的图片地址不就好了 模拟提交嘛

使用curl模拟获取验证码,同时将curl获取的Cookie进行存储,等你发送数据的时候(Curl发送数据)带上这个Cookie

说白吧 --我研究出这个网站的api调用是这样的 论坛之前说的是访问存个cookie去调用 但是现在他加了一个验证码 验证码对了才能 所以 我想调用必须解决验证码问题-- 所以想到让访问用户自己打 因为 cookie的是一天内有效 所以 只要有一个人打了验证码就可以了 所以说获取这个图片到本地再显示 用户ip去获取的验证码似乎行不通

显然你的思路是正确的
写了一个测试例

session_start();header('Content-type: text/html;charset=utf-8');include 'curl/curl_get.php';$url = 'http://api.94qing.com/';if(isset($_GET['img'])) {  curl_get($url);  echo curl_get($url . 'verify.php');  exit;}switch(1) {  case isset($_POST['code']):    $_SESSION['94qing'] = $_POST['code'];    curl_get($url . "?code=$_POST[code]");  case isset($_SESSION['94qing']):    echo curl_get("$url?type=time");    break;  default:    echo <<< FORM<form method=post><img  src=$_SERVER[PHP_SELF]?img=img alt="获取图片问题" ><input type=text name=code><input type=submit value=ok></form>FORM;  exit;}
第一次进入会有输入验证码的表单,以后再刷新就不需要了
为简单起见,只示例了获取当前时间的 api

curl_get 函数已经贴过多遍了,只是涵盖了常见的设置
就再贴一遍吧
function curl_get($durl, $data=array()) {  $cookiejar = realpath('cookie.txt');  $t = parse_url($durl);  $ch = curl_init();  curl_setopt($ch, CURLOPT_URL,$durl);  curl_setopt($ch, CURLOPT_TIMEOUT,5);  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);  curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);  curl_setopt($ch, CURLOPT_REFERER, "http://$t[host]/");  curl_setopt($ch, CURLOPT_COOKIEFILE, $cookiejar);  curl_setopt($ch, CURLOPT_COOKIEJAR, $cookiejar);  curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);  curl_setopt($ch, CURLOPT_ENCODING, 1); //gzip 解码  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);  if($data) {    curl_setopt($ch, CURLOPT_POST, 1);    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);  }  $r = curl_exec($ch);  curl_close($ch);  return $r;}

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:php程序员的基础概念Nächster Artikel:PHP5.3安装