Webページのリクエストステータスを取得するPHPプログラム例_PHPチュートリアル
Web ページから返されるステータス コードについては、通常、Web サイトのステータス コードが 200 であるか、エラー ページが 404 コードであるかを確認します。ほとんどの場合、確認方法は Web マスター ツールまたは FF ブラウザを使用します。ステータス コードを表示する関数を作成することを考える人はほとんどいません。
この記事では、Web ページのリクエストステータスを取得するための php のプログラム例を次のように簡単に説明します。
方法 1、fsockopen を使用します
(curl_getinfo は推奨されません!)
set_time_limit(0);
ignore_user_abort(true);
// 録画開始時間
list($usec, $sec) =explode(" ", microtime(true));
$timer[' start'] = (float)$usec + (float)$sec;
// URL を検証
if(!preg_match("/^https?:\/\//i", $url)){
$url = "http://".$url;
}
// HTTPS をサポート
if(empty($urlinfo['path'] )){
$urlinfo ['path'] = '/';
}
$host = $urlinfo[' host'];
$uri = $urlinfo['path'] . (empty($urlinfo['query'])?'' :$urlinfo['query']);
// fsock 経由で接続を開きます
if (!$fp = fsockopen($host, $port, $errno, $error, $fsock_timeout)){
list($usec , $sec) =explode(" ", microtime(true));
】 loat)$usec + (float)$sec;
,, ,,, ,,,, ,,, 終わり、 終わり」 ] =>-1, 'usetime'=>$usetime);
}
// リクエストを送信
$status =ソケット_get_status($fp);
$out = "GET {$uri} HTTP/1.1\r \ n";
$out .= "ホスト: {$host}\r\n";
$out .= "接続: 閉じる\r\n\r\n";
$write = fwrite($fp, $ out);
if(!$write){
list($usec, $sec) =explode(" ", microtime(true));
$timer['end'] = (float)$usec + (float ) $ SEC; $ Usetime = (Float) $ Timer ['End'] - (Float) $ Timer ['Start']
配列を返す ('Code' = & GT; -2, 'Usetime' = & GT) ; $ usetime);
}
$ret = fgets($fp, 1024);
preg_match("/http\/\d\.\d\s(\d+)/i", $ret, $m) ;
$code = $m[1];
fclose($fp);
list($usec, $sec) =explode(" ", microtime(true));
$timer['end'] = ( float) $usec + (float)$sec;
$usetime = (float)$timer['end'] - (float)$timer['start'];
return array('code'=>$code 、' usetime'=>$usetime);
}
file_get_contents は fsockopen 関数のシンプルなパッケージです。効率は少し劣りますが、クローリングの成功率が高いため、snoopy で問題が発生したときによく使用します。 5.0.0 では、コンテキストのサポートが追加され、ヘッダー情報を送信したり、ユーザー エージェント、リファラー、Cookie をカスタマイズしたりすることもできます。 5.1.0 では、ファイルの一部のみを読み取るための offset パラメータと maxlen パラメータが追加されました。
方法2、snoopy.class.phpを使用する
Snoopyはブラウザの機能をシミュレートするために使用されるphpクラスで、Webコンテンツを取得したりフォームを送信したりできます。
コードは次のとおりです:
$ch =curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.jb51.net/');
curl_setopt($ch, CURLOPT_RANGE, '0-500');
curl_setopt($ ch, CURLOPT_BINARYTRANSFER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result =curl_exec($ch);
curl_close($ch);
echo $result;
$writefn = function($ch, $chunk) {
static $data='';
static $limit = 500; // 500 バイト、これは単なるテストです
$len = strlen($data) + strlen($chunk);
if ($len >= $limit ) {
$data .= substr($chunk, 0, $ limit-strlen($data));
echo strlen($data) , ' , $data;
return -1;
}
$data .= $chunk;
return strlen($chunk);
};
$ch =curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.jb51.net/');
curl_setopt($ch, CURLOPT_RANGE, '0-500');
curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
curl_setopt($ch, CURLOPT_WRITEFUNCTION, $writefn);
$result =curl_exec($ch);
curl_close($ch);
いくつかの常見の状態:
200 - 服务器成功返還网页
404 - 要求されたネット页なし
503 - 服务器超時
301 - 页面重定向

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP でデータベースを操作するのは非常に簡単です。この章では、CRUD (作成、読み取り、更新、削除) 操作について理解します。

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、
