- ベストアンサー
URLの存在チェック
入力されたURLが実際に存在するかチェックする場合 どのように記述すれば良いのでしょうか。 file_existsを使用した場合存在するURLでも全てFALSEで返ってきてしまいました。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
> HTTP/1.1 404 Not Found これが無ければOKでしょうから、@fopenでエラーが無ければ良いのかも知れません。 $url = 'http://*****/***.html'; if (@fopen($url,'r')) { echo 'OK'; } else { echo 'NG'; } エラーでもif 内はTRUEじゃないですから、これでOKですね。 一つ勉強になりました(笑。
その他の回答 (2)
- taketan_mydns_jp
- ベストアンサー率58% (450/773)
> @fopenにしたのですがこれでも大丈夫でしょうか? 結果は同じだと思いますが。 @はエラー(Worning .............line XX)のようなエラーを表示させないためのもので、FALSEとは関係ないです。
お礼
再度ありがとうございます。 エラーを出さずに正しくTRUE/FALSEを返すにはどのように記述すれば良いのでしょうか? 現在のソースは以下です。 //ソース $url = 'http://*****/***.html'; if (fopen($url,'r')) { echo 'OK'; } else { echo 'NG'; } //上記を動かすと出るエラー Warning: fopen(http://*****/***.html): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /home/***/***.php on line ** ※動作だけなら@fopenで正しく動いてくれました。
- taketan_mydns_jp
- ベストアンサー率58% (450/773)
file_existsは自サーバ内だけじゃないかと思います。 fopenして内容をチェックすれば良いのではないでしょうか。
お礼
ありがとうございます。 fopenで存在しないURLをチェックするとエラーが出ましたので @fopenにしたのですがこれでも大丈夫でしょうか?
お礼
ありがとうございます。 とても参考になりました^^