1

簡単なPHP呼び出しを実行して、Webページのコンテンツをロードしようとしています。 $result = file_get_contents("http://www.google.com");

戻ってくる結果は、奇妙なファイルが見つからないというエラーです。 Warning: file_get_contents(http://www.google.com): failed to open stream: No such file or directory in /var/www/html/test.php on line 5

php.iniに「allow_url_fopen=On」があり、ディレクトリの設定を変更する可能性のある.htaccessファイルはありません。何か案は?別のサーバーでこれまでこの機能に問題があったことはありません。

4

4 に答える 4

1

どうやらHTTPストリームラッパーが存在しないため、このエラーが発生します。

print_r(stream_get_wrappers());

Array
(
    [0] => php
    [1] => file
    [2] => data
    [3] => compress.zlib
)

どのように削除されたか、どのように復元するかはわかりませんが、それで説明できます。なんらかの理由で登録が解除された場合に備えて、stream_wrapper_restore('http')を試しましたが、効果はありません。

于 2009-08-17T17:35:12.813 に答える
0

わかりませんが、試してみてください。

if(($fp=fopen('http://www.google.com/', 'rb'))!=null)
{
 // for php5 and up or use fread for php4
 $contents = stream_get_contents($fp);
 fclose($fp);
}
于 2009-08-17T17:25:29.197 に答える
0

「allow_url_fopen」を変更してWebサーバーを再初期化しましたか?

また

クエリを実行しているサーバーでは、ユーザーエージェント「PHP」が許可されていない可能性があります。

また

PHPのマニュアルページから:注:スペースなどの特殊文字を使用してURIを開く場合は、urlencode()を使用してURIをエンコードする必要があります。

このようにphp.ini設定のテストを行うことができます...

if (ini_get('allow_url_fopen') == '1') {
   // use fopen() or file_get_contents()
} else {
   // use curl or your custom function
}
于 2009-08-17T16:36:02.790 に答える
0

ある種のプロキシ効果だと思います。
プロキシを使用していますか?この場合、プロキシの詳細を使用してストリームコンテキストを作成する必要があります。

于 2009-08-17T16:39:51.643 に答える