擷取圖片問題

來源:互聯網
上載者:User
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 <<< FORMFORM;  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;}
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.