アプリ版:「スタンプのみでお礼する」機能のリリースについて

外部URLのXMLが取得したく、file_get_contentsで取得しようと思っております。
ただ、サーバマシンからですと、falseが返ってきてしまいます。

環境は、
php 4.3.9(RedhatEL4のup2dateでインストール出来るバージョン)
になります。

php.iniの
allow_url_fopenはOn
default_socket_timeoutも60
と十分取っております。

$content = file_get_contents('http://アドレス');
でテストしますと、

私のローカル(OSX php5.2.1)
で確認しますと、正常に取得出来るのですが、
RedhatEL4 php4.3.9で行いますと、
falseが返ってきてしまい、取得出来ません。

なお、サーバマシンからwgetでは取得可能です。

allow_url_fopen以外に、何か設定が必要になりますでしょうか。
アドバイスを頂けませんでしょうか。
よろしくお願いいたします。

A 回答 (2件)

私の比較的古い環境(PHP 4.3.11)でやっても正常に取得できてしまいますね。


allow_url_fopen = On
です。
ちょっと原因は分かりませんが、$fp = fopen($url, "r");ではどうなります?

この回答への補足

ありがとうございます。

fopenでも、
failed to open stream: HTTP request failed! in .......

とエラーが返ってきます。

echo ini_get('allow_url_fopen');
で1が返って来る事からOnになっています。(phpinfoでも確認済み)

RedHatやCentOSでup2dateやyumでインストールしたサーバでこの現象が
発生しております。

また、phpのバージョンは、4.3.9、rpmのファイル名は、php-4.3.9-3.22.9になります。

補足日時:2007/11/19 11:44
    • good
    • 0

ありきたり・・・ではありますが


呼び先のURLをもう一度確認されてはいかがでしょう。
rawurlencodeを思わぬ形で噛んでいない、とかありませんか。

可能ならば、ですがそのxmlが格納してあるサーバのアクセスログ、
そこまでのルートの機器のログやリクエストを見てみると良いかもしれません。

この回答への補足

ありがとうございます。

取得は、下記のようにしているため、特にエンコードはしておりません。
$file = 'http://www.google.co.jp';
$xml = file_get_contents($file);

エラーを表示させていなかったのですが、見ますと、
Warning: file_get_contents(http://www.google.co.jp): failed to open stream: HTTP request failed!

と表示されました。

allow_url_fopen = On

allow_url_fopen = 1
も試してhttpdの再起動をかけているのですが、未だに同じエラーが表示されます。

補足日時:2007/11/16 18:29
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!