PHP エラー メッセージ「ストリームを開けませんでした: HTTP リクエストが失敗しました!」に対する完璧な解決策

WBOY
リリース: 2016-06-13 12:08:42
オリジナル
912 人が閲覧しました

Google や Baidu にはそのような問題がたくさんあります。解決策は、php.ini を変更し、allow_url_fopen を有効にし、allow_url_fopen = On

を変更することです。これで一部の人の問題を解決できます。php の .ini には、オプションは 2 つあります:allow_url_fopen =on (リモート ファイルを URL 経由で開くことができることを示します)、user_agent="PHP" (ネットワークへのアクセスに使用されるスクリプトを示します。デフォルトの前に「;」があります。削除するだけです) ) サーバーを再起動します。

しかし、まだこの警告メッセージが表示される人もいます。php.ini で user_agent を設定する必要があります。これを PHP に変更しました。 Mozilla/4.0 (互換性; MSIE 6.0; Windows NT 5.0) ブラウザをシミュレートする

user_agent=”Mozilla/4.0 (互換性; MSIE 6.0; Windows NT 5.0)”

職場でこれに遭遇問題がついに完全に解決したので、みんなに共有します。
chemblink の構造式をバッチで取得したところ、ループ後に一部の画像が表示できないことがわかりましたが、リモート ファイルは存在していました。
リモート ファイルを取得すると、「Warning: readfile(http://www.jb51.net/logo.gif) [function.readfile]: failed to open stream: HTTP request failed!」のような警告メッセージが表示されます。使用されるコードは

コピー コード コードは次のとおりです。


ob_start(); //www .jb51.net/logo.gif");
$img = ob_get_contents();
ob_end_clean();


時間が経つと上記のエラーが表示されます動作中に、file_get_contents など他の関数も変更しましたが、うまくいきませんでした。ネットで調べたところ、CURL メソッドを使用してキャプチャすると問題ないことがわかりました。

以上です。カールの使用が一般的です

コードをコピーします コードは次のとおりです:

$url = "http://s.jb51.net";
$ch =curl_init( );
curl_setopt ($ch, CURLOPT_URL, $url); 🎜>curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT,10);
echo $dxycontent;


ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート