写真の取得に関する問題

WBOY
WBOYオリジナル
2016-06-23 13:30:401044ブラウズ

http://api.94qing.com/verify.php
このアドレス
何度も試しましたが、うまくいきませんでした。このアドレスの確認コードを取得してローカル ディレクトリに書き込む方法について教えてください。


ディスカッション(解決策)に返信

ローカルディレクトリを取得して表示…どういう意図ですか?

@PhpNewnew 確認コードを表示

ローカルディレクトリにアクセスして表示... どういう意図ですか?


Web サイトでユーザーに確認コードの入力が求められた後、確認コードを取得し、Web サイトへの呼び出しを続けます

意味がわかりません:
ローカルとは自分の Web サイトを指しますか?その場合、次の 2 つの方法があります:
1. 1c28f666d7b7f768bea46002938fdfa2

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


お役に立てば幸いです

I意味を理解してください:

ローカルとは自分の Web サイトを指しますか? 2 つの方法がある場合:
1.
2|

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


それから変更を受け取ります画像をローカルに保存してから読み出してください


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

ただし、接続は sessionID 付きの認証コード画像です

通常の画像処理は不可能です

クロスドメインにしたい場合は... これをクライアントにするとまだ接続を維持しても問題ありません...現在のロジックによれば、ローカル Web サイトが他の人の Web サイトに埋め込まれている場合...その場合は、その人の画像アドレスを直接引用して、送信をシミュレートした方が良いのではないでしょうか

シミュレートするには、curl を使用してください認証コードを取得すると同時に、curl で取得した Cookie が保存され、データを送信する (Curl がデータを送信する) ときは、この Cookie を持参してください

率直に言うと、私はこの Web サイトの API 呼び出しを次のように研究しましたこれは、フォーラムにアクセス時に呼び出すための Cookie が保存されると書かれていましたが、現在は検証コードが追加されているため、この呼び出しで検証コードの問題が解決されるはずだと思います。 Cookie は 1 日以内に有効なので、認証コードを入力する必要があるのは 1 人だけです。そのため、この画像をローカルで取得し、ユーザー 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><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;}

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。