ホームページ >バックエンド開発 >PHPチュートリアル >nginx+php5.3.20ではfile_get_contentsが使用できません。助けてください。
file_get_contents 外部ネットワークの URL には問題ありませんが、ローカルマシンの URL (http://localhost/index.php など) を取得したい場合は、次のエラーが報告されます:
A connection接続側が一定期間経過しても適切に応答しなかったため、試行が失敗しました。または、接続されたホストが応答しなかったため、接続の確立に失敗しました)。アップストリーム、クライアント: 124.2xx.xxx.xxx、サーバー: www.xxx からの応答ヘッダーの読み取り中に。 com、リクエスト: "GET /index.php HTTP/1.0"、アップストリーム: "fastcgi://127.0.0.1:9000"、ホスト: "www.xxx.com"
インターネットでそのような記事を見つけました、http: //www.codesky.net/article/ 201106/174247.html しかし、Windows での操作方法がわかりません、または他の方法はありますか?助けてください
関数に時間を追加しようとしましたが、次のように動作しませんでした:
<?php $ctx = stream_context_create(array( 'http' => array( 'timeout' => 1 //设置一个超时时间,单位为秒 ) ) ); file_get_contents("http://example.com/", 0, $ctx); ?>
また、curl に変更してみましたが、次のように動作しませんでした:
$ch = curl_init(); $timeout = 5; curl_setopt ($ch, CURLOPT_URL, 'http://localhost/index.php'); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout); $con = curl_exec($ch); curl_close($ch);
ホストを変更して、ローカルに解決するドメイン名を取得します。
ドメイン名を使用してソリューションにアクセスしますよね? または、IP アドレスを直接使用してみてください
ホストを変更し、ローカルに解決するドメイン名を取得してください
または、試してみてくださいIP アドレスを直接指定します
はい、これはまさに私の場合です
php.ini を確認してください。allow_url_fopen = 1 ですか?
php.ini を確認してください。allow_url_fopen = 1 ですか?
allow_url_fopen は確実にオンになっています
include を使用してみましたが、非常に行き詰まりました。その後、タイムアウトの瞬間に望んでいた結果が得られましたが、結局のところ、それは私が望んでいたものではありませんでした。論理的には、取得したいコンテンツは次のとおりです。 be in それは 1 秒以内に完了します。
これまでに他の解決策が見つかっていますが、まだ混乱しており、Windows の nginx+php5.3 のバグでしょうか?
バグ?そのようなことはない。コードを確認してください。
次に、Chrome または Firebug を使用して、リクエスト ヘッダーとブラウザーの Cookie を確認します。または、テストにブラウザーを使用せず、Windows に付属のコマンド プロンプトを使用します。実行 -> cmd Enter -> php c:wwwindex.php Enter結果が dos インターフェイスに返されるかどうかを確認しますか?
私も同じ問題に遭遇しました
この問題、
マークです 専門家を待っています
私も同じ問題に遭遇しました
これだと感じます問題、
マーク 専門家を待っています
兄弟も ローカル URL のコンテンツを取得したいですか?実際にこの関数を使用して静的を生成するのですが、Xiongtai が何に使用するのかはわかりません。
しかし、他の方法、つまり ajax を使用してローカル URL をリクエストして解決しましたが、効果は同じです。
同じ問題が発生しました。今すぐ解決策がある場合は教えてください
同じ問題、質問してください
function __curl_get($url){
/*print_r(phpinfo());exit;*/ $ch =curl_init();
curl_setopt( $ch、CURLOPT_URL、$url);
curl_setopt($ch、CURLOPT_RETURNTRANSFER、1);
curl_close($ch); return $ret;
}
この関数を使用して Web ページをクロールするだけです。これを使用するには、curl_init() 拡張機能を追加する必要があります