2

私の「ipage」ページで、ポート 8000 の URL で file_get_contents を使用すると、何も得られません。

お気に入り :

$geturl = file_get_contents('http://mfpradio.no-ip.org:8000/status.xsl');
print_r($geturl);

これはローカルで機能しています。

「ipage」は「print_r」以降のスクリプトを読みません。たとえば、次のように動作します。

$geturl = file_get_contents('http://stackoverflow.com');

curl を試しましたが、同じ問題です。

「ipage」ページでストリームを再生できます。

したがって、「ipage」が のポート「8000」をブロックしているようですfile_get_contents()。webshostがそうするのは普通ですか?

4

3 に答える 3

2

PHP には、ファイル処理関数が URL で動作するのをブロックするオプションがあります。このオプションは、セキュリティ上の理由から、ホスティング会社によって有効にされることがよくあります。

このフラグの設定が何であるini_get('allow_url_fopen')かを調べてください。許可されているかどうかを調べるには、次のようなものを使用してください。私の推測では、それを許可しないように設定されると思います。

ホストによって許可されていない場合は、別の方法 (おそらくもっと複雑な方法) を使用してデータを読み取る必要があります。通常の答えは、CURL を使用することです (ただし、非常に長いコードになる可能性があります。さらに、CURL 拡張機能が利用できない可能性もあります)。

于 2012-12-20T22:15:19.677 に答える
0

なぜ使用しないのCURLですか?

サーバーがそのページにアクセスできると確信していますか? domain.com:port で動作するはずです

于 2012-12-20T22:13:15.147 に答える
-2

サーバーhttp://mfpradio.no-ip.org:8000/ポート、つまり 8000 がサーバー ファイアウォールでページ情報を読み取る発信ポートとして開いていることを確認してください…

file_get_contents() そのポートからページのコンテンツを読み取ろうとします:)

于 2014-01-09T08:05:42.123 に答える