カール関数

WBOY
WBOYオリジナル
2016-06-23 14:12:26779ブラウズ

Curl PHP

function search($url,$curlPost){
$cookiejar = realpath ('cookie.txt');
$ch =curl_init ();
curl_setopt ($ch, CURLOPT_URL, $ url);
curl_setopt($ch,CURLOPT_HEADER,0);
curl_setopt($ch,CURLOPT_POST,1); ); curl_setopt ( $ch, CURLOPT_COOKIEJAR, $cookiejar ); // クッキーを返すには
$data=curl_exec ( $ch );
return $data;

; PHP 外部ネットワーク マシンがコンピューター経由でイントラネット リソースにアクセスできるようにするため、1 つのスクリーンショットはイントラネットからイントラネット Web サイトにログインするときのデータ対話のスクリーンショットであり、もう 1 つは、curl を使用して PHP ファイルを通じてアクセスするときのスクリーンショットです。機能。一部のファイルが欠落していることを示します。誰かそれを解決する方法を知っていますか?


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

このコンテンツでは、単に login!checkLogin.action をシミュレートするだけでは済みません。というように、curl を使用して接続を取得し、次に、curl を使用してコンテンツを取得して表示します。つまり、header.html は、curl.php?page=header.html になります。
置き換えない場合は、curl のシミュレーションに使用した php と同じディレクトリで header.html を探してください。おそらく存在しないと思います。


こんにちは、実装方法を教えていただけますか?

検索機能を使用するだけでは実行できません

スクリーンショットから、あなたのものはフレームページであるようで、フレームレイアウトページのデータのみを返します各フレーム ページのデータは外部ネットワークに返されません

アプリケーションはプロキシ プログラムとして作成する必要があります

最初のインターフェイスにデータを送信しましたが、内部ネットワーク サーバーは次の 4 を返しますかインターフェイスを直接出力したのに、なぜ印刷できないのですか?

はい、イントラネット サーバーは次の 4 つのインターフェイスを返します
しかし、これらのページはすべてイントラネット用ではないでしょうか?外部ネットワークから直接アクセスするにはどうすればよいですか?
外部ネットワークから直接アクセスできるのであれば、なぜ関数を記述する必要があるのでしょうか?

つまり、curl 関数を使用して内部ネットワーク上のこれら 4 つのインターフェイスを取得し、これら 4 つのインターフェイスのデータを外部ネットワーク上の訪問者に送信するということです。なぜこれら 4 つのインターフェイスを印刷できないのでしょうか?さらに、4 つのインターフェイスがすべて取得されて渡された後でも、なぜインターフェイスが不足していると言われるのでしょうか?

たとえば、レイアウト ページに があります。

top.htm はどこを指していると思いますか?
内部ネットワークを指している場合、外部ネットワークからアクセスできますか?

iframe のメカニズムは次のとおりです

1. ブラウザは iframe 要素を含むページを取得します

2. ブラウザはページをレンダリングします

3. ブラウザは iframe 要素を検出します
4. ブラウザは、iframe 要素に含まれるページコンテンツを再リクエストしますiframe
5. ページ

を含む iframe をレンダリングします

ここでのページに対応します
1. ブラウザは、login!checkLogin.action のリクエストを開始します
2. ページをレンダリングします
3. iframe 要素 (ヘッダーを含む iframe など) を検出します.html)
4. ブラウザーがヘッダーを再リクエストします。
5. header.html ページをレンダリングします
リクエストは次のようになります
1. ブラウザーがホストをリクエストし、ホストがイントラネットのログインをリクエストします。checkLogin。アクション
2. ブラウザがページをレンダリングします
3. iframe 要素が検出されました
4. ブラウザが header.html をリクエストします。header.html はどこで入手しましたか?

次に、解決策は次のとおりです
1. ブラウザがホストをリクエストします。ホストはイントラネットの login!checkLogin .action をリクエストし、同時に iframe 内の src を元の header.html から proxy.php?page=headerl.html に変更します
2. レンダリングされたページを参照します
3. iframe
4. ホスト proxy.php? page=header.html へのリクエストを開始します。proxy.php はイントラネットにアクセスして HTML コンテンツを取得し、それを返します
5. header.html ページの実際のコンテンツをレンダリングします

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