php獲取網(wǎng)頁(yè)內(nèi)容方法總結(jié)
更新時(shí)間:2008年12月04日 13:49:51 作者:
用php抓取頁(yè)面的內(nèi)容在實(shí)際的開(kāi)發(fā)當(dāng)中是非常有用的,如作一個(gè)簡(jiǎn)單的內(nèi)容采集器,提取網(wǎng)頁(yè)中的部分內(nèi)容等等
抓取到的內(nèi)容在通過(guò)正則表達(dá)式做一下過(guò)濾就得到了你想要的內(nèi)容,至于如何用正則表達(dá)式過(guò)濾,在這里就不做介紹了,有興趣的,以下就是幾種常用的用php抓取網(wǎng)頁(yè)中的內(nèi)容的方法。
1.file_get_contents
PHP代碼
<?php
$url = "http://www.dbjr.com.cn";
$contents = file_get_contents($url);
//如果出現(xiàn)中文亂碼使用下面代碼
//$getcontent = iconv("gb2312", "utf-8",$contents);
echo $contents;
?>
2.curl
PHP代碼
<?php
$url = "http://www.dbjr.com.cn";
$ch = curl_init();
$timeout = 5;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
//在需要用戶(hù)檢測(cè)的網(wǎng)頁(yè)里需要增加下面兩行
//curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
//curl_setopt($ch, CURLOPT_USERPWD, US_NAME.":".US_PWD);
$contents = curl_exec($ch);
curl_close($ch);
echo $contents;
?>
3.fopen->fread->fclose
PHP代碼
<?php
$handle = fopen ("http://www.dbjr.com.cn", "rb");
$contents = "";
do {
$data = fread($handle, 1024);
if (strlen($data) == 0) {
break;
}
$contents .= $data;
} while(true);
fclose ($handle);
echo $contents;
?>
注:
1.使用file_get_contents和fopen必須空間開(kāi)啟allow_url_fopen。方法:編輯php.ini,設(shè)置allow_url_fopen = On,allow_url_fopen關(guān)閉時(shí)fopen和file_get_contents都不能打開(kāi)遠(yuǎn)程文件。
2.使用curl必須空間開(kāi)啟curl。方法:windows下修改php.ini,將extension=php_curl.dll前面的分號(hào)去掉,而且需要拷貝ssleay32.dll和libeay32.dll到C:\WINDOWS\system32下;Linux下要安裝curl擴(kuò)展。
1.file_get_contents
PHP代碼
復(fù)制代碼 代碼如下:
<?php
$url = "http://www.dbjr.com.cn";
$contents = file_get_contents($url);
//如果出現(xiàn)中文亂碼使用下面代碼
//$getcontent = iconv("gb2312", "utf-8",$contents);
echo $contents;
?>
2.curl
PHP代碼
復(fù)制代碼 代碼如下:
<?php
$url = "http://www.dbjr.com.cn";
$ch = curl_init();
$timeout = 5;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
//在需要用戶(hù)檢測(cè)的網(wǎng)頁(yè)里需要增加下面兩行
//curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
//curl_setopt($ch, CURLOPT_USERPWD, US_NAME.":".US_PWD);
$contents = curl_exec($ch);
curl_close($ch);
echo $contents;
?>
3.fopen->fread->fclose
PHP代碼
復(fù)制代碼 代碼如下:
<?php
$handle = fopen ("http://www.dbjr.com.cn", "rb");
$contents = "";
do {
$data = fread($handle, 1024);
if (strlen($data) == 0) {
break;
}
$contents .= $data;
} while(true);
fclose ($handle);
echo $contents;
?>
注:
1.使用file_get_contents和fopen必須空間開(kāi)啟allow_url_fopen。方法:編輯php.ini,設(shè)置allow_url_fopen = On,allow_url_fopen關(guān)閉時(shí)fopen和file_get_contents都不能打開(kāi)遠(yuǎn)程文件。
2.使用curl必須空間開(kāi)啟curl。方法:windows下修改php.ini,將extension=php_curl.dll前面的分號(hào)去掉,而且需要拷貝ssleay32.dll和libeay32.dll到C:\WINDOWS\system32下;Linux下要安裝curl擴(kuò)展。
您可能感興趣的文章:
- thinkphp3.x中變量的獲取和過(guò)濾方法詳解
- php完全過(guò)濾HTML,JS,CSS等標(biāo)簽
- php過(guò)濾HTML標(biāo)簽、屬性等正則表達(dá)式匯總
- php 安全過(guò)濾函數(shù)代碼
- PHP對(duì)表單提交特殊字符的過(guò)濾和處理方法匯總
- 過(guò)濾掉PHP數(shù)組中的重復(fù)值的實(shí)現(xiàn)代碼
- PHP屏蔽過(guò)濾指定關(guān)鍵字的方法
- php獲取數(shù)組長(zhǎng)度的方法(有實(shí)例)
- php自動(dòng)獲取字符串編碼函數(shù)mb_detect_encoding
- php獲取post中的json數(shù)據(jù)的實(shí)現(xiàn)方法
- php 如何獲取數(shù)組第一個(gè)值
- php通過(guò)兩層過(guò)濾獲取留言?xún)?nèi)容的方法
相關(guān)文章
PHP自動(dòng)識(shí)別當(dāng)前使用移動(dòng)終端
這篇文章主要為大家詳細(xì)介紹了PHP自動(dòng)識(shí)別當(dāng)前使用移動(dòng)終端,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-05-05PHP正則表達(dá)式函數(shù)preg_replace用法實(shí)例分析
這篇文章主要介紹了PHP正則表達(dá)式函數(shù)preg_replace用法,結(jié)合實(shí)例形式分析了PHP正則表達(dá)式函數(shù)preg_replace基本功能、參數(shù)描述與相關(guān)使用技巧,需要的朋友可以參考下2020-06-06PHP連接Access數(shù)據(jù)庫(kù)的方法小結(jié)
有時(shí)候我們?cè)陂_(kāi)發(fā)一些小程序或簡(jiǎn)單功能的管理系統(tǒng),又沒(méi)有mysql數(shù)據(jù)庫(kù)的情況下,就可以使用access了,這里介紹下鏈接方法2013-06-06php數(shù)組相加 array(“a”)+array(“b”)結(jié)果還是array(“a”)
同一個(gè)數(shù)組里面如果有相同的鍵名,則前面一個(gè)鍵名的值將會(huì)被覆蓋(overwritten)2012-09-09

php防止偽造數(shù)據(jù)從地址欄URL提交的方法
針對(duì)偽造的數(shù)據(jù)從URL提交的情況,首先是檢查前一頁(yè)來(lái)源,這個(gè)方法只能防止手動(dòng)在瀏覽器地址欄上輸入的URL,目前覺(jué)得還是用POST的方法傳遞重要數(shù)據(jù)比較可靠
2014-08-08 
解析array splice的移除數(shù)組中指定鍵的值,返回一個(gè)新的數(shù)組
array_splice這個(gè)數(shù)組函數(shù)在w3school的解釋是把數(shù)組中的一部分去掉并用其它值取代。所以我在做數(shù)組移除的時(shí)候沒(méi)有考慮到用這個(gè)函數(shù),或者因?yàn)閺膩?lái)沒(méi)有用過(guò)
2013-07-07 
PHP設(shè)計(jì)模式之策略模式原理與用法實(shí)例分析
這篇文章主要介紹了PHP設(shè)計(jì)模式之策略模式原理與用法,結(jié)合實(shí)例形式較為詳細(xì)的分析了策略模式的概念、原理及php實(shí)現(xiàn)與使用策略模式的相關(guān)操作技巧,需要的朋友可以參考下
2019-04-04