phpでhttpリクエストを作成し、当該URLのステータスのチェックを行うプログラムを作成しました。
試作したプログラムの該当部分はこのようなものですが、
$response = $req->sendRequest();
if (!PEAR::isError($response)) {
$ret = $req->getResponseCode
}
同一サーバー内で、該当htmlが存在しないときは、サーバーは404を返すなど、$ret にしかるべきHTTPステータスコードを返してくれます。
ところが私の知識不足で不明なことがあります。
それは、そもそも該当URLのサーバー自体(ドメイン等)が存在しない時は、何がどういうコードを返してくれるのか、ということです。
先ほどの $ret には何も入ってきません。
このあたりご教授いただければ幸いです。
よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
基本的にHTTPのステータスはアクセスしたWebサーバが返すものです。
従ってドメインが無い、応答しないなのどのエラーはクライアント側で出すエラーコードになります。http://www5.plala.or.jp/vaio0630/mail/st_code.htm
コードも無く応答内容が無い場合は、サーバが応答しませんなどクライアント側で処理が必要です。
この回答への補足
回答ありがとうございます。
サーバーではなく、クライント側でですエラーコードとのことですが、
クライアントというのは、ブラウザのことでしょうか?
先ほどのプログラムは、IEを使ってプログラムを実行していますが、
IEが何らかのエラーを返すのでしょうか?
ちなみに、$ret に返ったのは nullでした。
また、サーバーが応答しないこのような場合、$ret がnullということを
判断基準としてよろしいのでしょうか?
お手数ですが、このあたりも教えていただきたく思います。
よろしくお願いします。
No.3
- 回答日時:
質問の意図がわかりかねるのですが・・
単純に存在するURLからレスポンスを取る場合は、そのサーバーが吐く
エラーコードを得ればいいわけで、
逆に存在しないURLであればレスポンスはないのだから、探しに行った
PHPのスクリプトが動くサーバーが音をあげてエラーになるだけです。
この回答への補足
回答ありがとうございます。
> 逆に存在しないURLであればレスポンスはないのだから、探しに行った
> PHPのスクリプトが動くサーバーが音をあげてエラーになるだけです。
このあたりのロジックを詳しく知りたいと思っていたのです。
PHPのスクリプトが動くサーバーがエラーを吐くのか、それを実行している
Webブラウザがエラーを吐くのか、またそれらに一定の規則があるのか・・など。
どうやら、PHPのスクリプトが動いているサーバーの仕様によって、いろいろと
異なるようですね。
いわゆる、HTTPステータスコード一覧表に掲載されていないレスポンスが
返ったときは、そのURL(ドメイン)が存在しないと判断することにします。
No.2
- 回答日時:
をみると、connectできないときは、PEAR::isError($response)が真になるので、$responseからエラー情報を取得できそうな。
この回答への補足
回答ありがとうございます。
getResponseCode
の他に、
getResponseHeader
getResponseBody
を取得してみましたが、いずれもnullでした。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP 掲示板のセキュリティについてアドバイスお願い致します 1 2023/08/11 20:44
- PHP preg_matchで Warning: Undefined variableが出ます 1 2022/11/15 17:06
- Visual Basic(VBA) vbaマクロについて シート1のA列にある商品コードが シート2のB列にある商品コードに該当する場合 2 2023/05/17 13:41
- サーバー Webサイト構築フリーランスの案件受注について 1 2022/03/27 18:16
- その他(ソフトウェア) PC上のOutlookでIMAPアクセス時の送信が出来ない。Android上では問題なし。 2 2022/09/28 11:22
- その他(社会・学校・職場) 業務内容についてどう思いますか? 私は客先の仕事を下請けとして行うという仕事をしていますが、(客先の 2 2022/05/04 16:17
- 退職・失業・リストラ 離職理由コードについてのご相談 2 2022/12/14 22:53
- その他(コンピューター・テクノロジー) FPGA構成データ、ソフトウェアデータ をボード Zybo Z20 用に転送する方法 1 2023/07/25 18:19
- その他(プログラミング・Web制作) pythonのWebスクレイピングでfind_allだとurlがNoneに 4 2022/04/17 18:21
- 法学 抹消の原因が存在していなかったとして当該抹消された所有権の移転の登記の回復する場合、 1 2022/10/28 05:00
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フォントの色を変えるには?
-
「@$変数」の「@の意味は?」
-
トランザクションが原因?DBに...
-
パースエラーとは?
-
PHPでfatal errorが出ても無視...
-
PHPのエラーの意味【strstr() E...
-
PHPで、エラーがない場合のみ画...
-
502 Bad Gatewayの解決方法
-
正規表現での最後尾のバックス...
-
SELECTの値を保持する
-
php pear mdb2に質問です。
-
ある条件に当てはまったときに...
-
「Ajax送信先PHP」Warningがな...
-
bindValueエラー
-
PHP、unpack関数でのエラー
-
エラーコードの意味を教えてく...
-
php5.6でsimplexml_load_string...
-
テキストエディター「notepad++...
-
PHPのif文でその処理を途中で抜...
-
リンク先を隠す方法はないでし...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フォントの色を変えるには?
-
PHP8を使うと、大量のWarningが...
-
トランザクションが原因?DBに...
-
ワードプレスサイト PHP8.0.25...
-
PHPで、エラーがない場合のみ画...
-
「@$変数」の「@の意味は?」
-
パースエラーとは?
-
phpでクラスのメソッドで同名の...
-
phpでget_headers()が使えない?
-
PHPでネットワークドライブのop...
-
PHPでfatal errorが出ても無視...
-
phpでPEAR::DBを使っているので...
-
awsにApacheとPHPを入れて、何...
-
error_reporting(0);にも関わら...
-
正規表現での最後尾のバックス...
-
これは例外処理でしょうか?
-
SELECTの値を保持する
-
PHPにて外部サイト内容が取得不...
-
iframeからのアクセスか、ブラ...
-
PHP mb_send_mail メール送信 5...
おすすめ情報