對於網頁返回狀態**一般情況下我們都會去查自己**狀態碼是不是200或錯誤頁面是不是404**,並且多數情況下我們的檢視方法就是使用站長工具或ff瀏覽器等來檢視,極少有人想到自己寫乙個檢視狀態**的功能。
方法一,使用 fsockopen
(不推薦使用curl_getinfo!)
複製** **如下:
// 支援https
&nrocwozuubsp; // 解析url
$urlinfo = parse_ur
if(empty($urlinfo['path']))
$host = $urlinfo['host'];
$uri = $urlinfo['path'] . (empty($urlinfo['query'])?'':$urlinfo['query']);
// 通過fsock開啟連線
if(!$fp = fsockopen($host, $port, $errno, $error, $fsock_timeout))
// 提交請求
}file_get_contents 程式設計客棧是 fsockopen 功能的簡單打包,效率稍低些,但是抓取成功率很高,所以在 snoopy 出問題的時候我一般拿他來用。5.0.0 新增了對 context 的支援,有了context,他也可以傳送 header 資訊,自定義使用者 agent, referer, cookies 都不在話下。5.1.0 新增了 offset 和 maxlen 引數,可以唯讀檔案的一部分內容。
方法二,使用snoopy.class.php
snoopy是乙個php類,用來模擬瀏覽器的功能,可以獲取網頁內容,傳送表單。
複製** **如下:
$ch = curl_init();
curl_setopt($ch, curlopt_url, '');
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)
$data .= $chunk;
return strlen($chunk);
};$ch = curl_init();
curl_setopt($ch, curlopt_url, '');
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 - 頁面重定向
本文標題: php獲取網頁請求狀態程式示例
本文位址:
php獲取http頭部請求狀態資訊
使用curl來實現,curl需要在php.ini中設定啟用,開啟php.ini,找到 extension php curl.dll 去掉前面的注釋。curl curl init url curl setopt curl,curlopt url,url url curl setopt curl,cur...
php網頁示例,php獲取網頁標題的三種方法示例
一 curl方法 推薦 複製 示例 c curl init url www.jbxue.com curl setopt c,curlopt url,url curl setopt c,curlopt returntransfer,1 data curl exec c curl close c pos...
php傳送http請求,獲取網頁內容方法
php傳送http請求,獲取網頁內容方法 curl file get contents fopen 區別 1.相較於file get contents fopen curl支援更多功能 curl支援更多協議,目前支援http https ftp gopher telnet dict file ida...