
PHPにて外部サイトの情報を取得しています。
数年前に作成し、問題なく取得できていたのですが
ここ数週間、タイムアウトとなってしまいます。
file($URL)で取得しているのですが、下記のエラーとなります。
<b>Warning</b>: file($URL): failed to open stream: Connection timed out in <b>XXX.php</b> on line <b>29</b><br />
色々なサイトで試したのですが、どれもエラーとなります。
※ブラウザで直接入力すればすぐにアクセスできます
レンタルサーバですがサーバサイドに確認したところ原因不明。
PHPのバージョンが [PHP 5.2.17]でした。
サーバサイドがバージョンアップ推奨とのアナウンスがでていたので
[PHP 5.5.8]としましたが、一向にエラーのままです。
調査観点等、ございましたら教えて下さい。
宜しくお願い致します
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
エラーと直接関係ないですが、「file」じゃなくて「file_get_contents」の方が目的に合っていませんか…?
PHP Manual - file
http://www.php.net/manual/ja/function.file.php
PHP Manual - file_get_contents
http://www.php.net/manual/ja/function.file-get-c …
そして「file_get_contents」の代替として使えるcURL関数群を使えば、とりあえずエラーは回避出来る可能性があります。
ob_start();
curl_exec(curl_init($URL));
$data = ob_get_clean();
もしくは
$ch = curl_init($URL);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($ch);
この回答への補足
ご回答有難うございました。
確かにアドバイスのコードの方が良さそうですね。
他の方の補足にも記載したのですが、
やっかいなのは、たまに何事もなく取得できていることです。
特定サイトのみ繋がらない状態であれば、そのサイトがメンテ中等あるかと
思うのですが、繋がらない時間はどんなサイトも取得できません。
googleやyahooも。
レンタルサーバなので、サーバサイドの設定を疑っているのですが
問い合わせても問題ないの回答です。。
現在、エラーとなる状態でして、アドバイス頂いたコードでも
Internal Server Error
となりました。
常時繋がる状態がベストなのですが、繋がる状態で試せたら再度試してみます。
他にも思い当たる点、ございましたらアドバイスお願い致します。
No.2
- 回答日時:
$URLのサイトは今でも有効なのでしょうか?
そこはテストしてみたほうがいいかもですよね。
あと、別の、www.google.co.jpでもいいので、別アドならどうなるかとか。
その関数がなぜそのエラーを出したかを突き止めるのが、
先だとおもわれます。
この回答への補足
ご回答有難うございました。
質問にも記載してますが、
色々なサイトで試してますが、繋がらない状態の時は
すべてエラーとなってしまいます。
やっかいなのは、たまに何事もなく取得できていることです。
特定サイトのみ繋がらない状態であれば、そのサイトがメンテ中等あるかと
思うのですが、繋がらない時間はどんなサイトも取得できません。
googleやyahooも。
レンタルサーバなので、サーバサイドの設定を疑っているのですが
問い合わせても問題ないの回答です。。
他にも思い当たる点、ございましたらアドバイスお願い致します。
No.1
- 回答日時:
この回答への補足
ご回答有難うございました。
参考URLは確認しておりまして
●原因1:ファイル名を間違えている
単純な原因です。
>あってます。
●原因2:ファイル名(パス)に「¥」が含まれる
ファイル名(パス)に「¥」が含まれると、そのファイルをうまく開くことができません。
>問題無いです。
●原因3:外部URLを開けない設定になっている
php.iniの設定が「allow_url_fopen = Off」
>ONになっています。
やっかいなのは、たまに何事もなく取得できていることです。
特定サイトのみ繋がらない状態であれば、そのサイトがメンテ中等あるかと
思うのですが、繋がらない時間はどんなサイトも取得できません。
googleやyahooも。
レンタルサーバなので、サーバサイドの設定を疑っているのですが
問い合わせても問題ないの回答です。。
他にも思い当たる点、ございましたらアドバイスお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHPでfatal errorが出ても無視...
-
フォントの色を変えるには?
-
PHP8を使うと、大量のWarningが...
-
「@$変数」の「@の意味は?」
-
phpでget_headers()が使えない?
-
最小公倍数をPHPで求めるには
-
wininetでPOSTで値を渡せません
-
PHPでネットワークドライブのop...
-
時間表示
-
phpのheader("Location:#pos")...
-
PHPのif文でその処理を途中で抜...
-
Apache 2.4でphp-5.3を使いたい...
-
phpの中でphpを書けないか
-
require_once()でファイルが読...
-
header(Location:~)で$_SESS...
-
さくらインターネットでメール...
-
フォームで戻った際に入力済み...
-
PHPでメールを受信するには?
-
php4とphp5での数値の取り扱い...
-
PEAR(Image_QRCode)のエラー
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
[php初心者]サイトを見てデータ...
-
PHP8を使うと、大量のWarningが...
-
フォントの色を変えるには?
-
PHPで、エラーがない場合のみ画...
-
ワードプレスサイト PHP8.0.25...
-
トランザクションが原因?DBに...
-
PHPでSMTPを使ってメール送信で...
-
「@$変数」の「@の意味は?」
-
あらゆる例外に対応できるエラ...
-
PHPでネットワークドライブのop...
-
正規表現での最後尾のバックス...
-
phpのIF条件分岐で、代入する値...
-
qmailによるメールの受信について
-
PHPにて外部サイト内容が取得不...
-
phpでこの記述をもっと簡単に書...
-
bindValueエラー
-
Bootstrap3 と Faundation5 を...
-
PHPエラーチェック:ローカルで...
-
PHPでfatal errorが出ても無視...
-
AptanaStudioでASP形式のPHPシ...
おすすめ情報