91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php如何抓取頁面

發布時間:2021-02-22 15:41:07 來源:億速云 閱讀:170 作者:清風 欄目:編程語言

php有什么用

php是一個嵌套的縮寫名稱,指的是英文超級文本預處理語言(php:Hypertext Preprocessor)的縮寫,它的語法混合了C、Java、Perl以及php自創新的語法,主要用來做網站開發,許多小型網站都用php開發,因為php是開源的,從而使得php經久不衰。

在做一些互聯網應用的時候,往往需要抓取網絡文件大多數網頁文件,一般情況下都是利用php模擬瀏覽器的訪問,通過http請求訪問url地址,然后得到html源代碼或者其它格式的數據,然后對這些數據進行處理格式化,按照我們事先約定好的方式輸出到終端或其它接口。

一、 PHP抓取頁面的主要方法: 

1. file()函數 

2. file_get_contents()函數 

3. fopen()->fread()->fclose()模式 

4.curl方式 

5. fsockopen()函數 socket模式 

6. 使用插件(如:http://sourceforge.net/projects/snoopy/) 

二、PHP解析html或xml代碼主要方式: 

1. 正則表達式 

2. PHP DOMDocument對象 

3. 插件(如:PHP Simple HTML DOM Parser) 

如果你對以上內容已經很了解,以下內容可以飄過...... 

PHP抓取頁面 

1. file()函數 

<?php 
$url='http://t.qq.com'; 
$lines_array=file($url); 
$lines_string=implode('',$lines_array); 
echo htmlspecialchars($lines_string); 
?>

2. file_get_contents()函數 

使用file_get_contents和fopen必須空間開啟allow_url_fopen。方法:編輯php.ini,設置 allow_url_fopen = On,allow_url_fopen關閉時fopen和file_get_contents都不能打開遠程文件。 

<?php 
$url='http://t.qq.com'; 
$lines_string=file_get_contents($url); 
echo htmlspecialchars($lines_string); 
?>

3. fopen()->fread()->fclose()模式 

<?php 
$url='http://t.qq.com'; 
$handle=fopen($url,"rb"); 
$lines_string=""; 
do{ 
$data=fread($handle,1024); 
if(strlen($data)==0){break;} 
$lines_string.=$data; 
}while(true); 
fclose($handle); 
echo htmlspecialchars($lines_string); 
?>

4. curl方式 

使用curl必須空間開啟curl。方法:windows下修改php.ini,將extension=php_curl.dll前面的分號去掉,而且需要拷貝ssleay32.dll和libeay32.dll到C:\WINDOWS\system32下;Linux下要安裝curl擴展。 

<?php 
$url='http://t.qq.com'; 
$ch=curl_init(); 
$timeout=5; 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); 
$lines_string=curl_exec($ch); 
curl_close($ch); 
echo htmlspecialchars($lines_string); 
?>

5. fsockopen()函數 socket模式 

socket模式能否正確執行,也跟服務器的設置有關系,具體可以通過phpinfo查看服務器開啟了哪些通信協議,比如我的本地php socket沒開啟http,只能使用udp測試一下了。 

<?php 
$fp = fsockopen("udp://127.0.0.1", 13, $errno, $errstr); 
if (!$fp) { 
echo "ERROR: $errno - $errstr<br />\n"; 
} else { 
fwrite($fp, "\n"); 
echo fread($fp, 26); 
fclose($fp); 
} 
?>

6. 插件 

網上應該有比較多的插件,snoopy插件是在網上搜到的,有興趣的可以研究一下。 

PHP解析xml(html) 

1. 正則表達式: 

<?php 
$url='http://t.qq.com'; 
$lines_string=file_get_contents($url); 
eregi('<title>(.*)</title>',$lines_string,$title); 
echo htmlspecialchars($title[0]); 
?>

2. PHP DOMDocument()對象 

如果遠程的html或xml存在語法錯誤,php在解析dom的時候會報錯。 

<?php 
$url='http://www.136web.cn'; 
$html=new DOMDocument(); 
$html->loadHTMLFile($url); 
$title=$html->getElementsByTagName('title'); 
echo $title->item(0)->nodeValue; 
?>

3. 插件 

本文以PHP Simple HTML DOM Parser為例,進行簡單介紹,simple_html_dom的語法類似jQuery,它讓php操作dom,就像使用jQuery操作dom一樣的簡單。 

<?php 
$url='http://t.qq.com'; 
include_once('../simplehtmldom/simple_html_dom.php'); 
$html=file_get_html($url); 
$title=$html->find('title'); 
echo $title[0]->plaintext; 
?>


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

郎溪县| 平舆县| 舒城县| 肥城市| 桃江县| 沙坪坝区| 马龙县| 康平县| 衡阳市| 大埔县| 米脂县| 乌鲁木齐市| 苗栗县| 孟连| 星子县| 湖北省| 沙河市| 遵化市| 平原县| 龙南县| 静宁县| 扎鲁特旗| 克东县| 嘉鱼县| 定日县| 德格县| 保德县| 沅江市| 孝感市| 永仁县| 恭城| 辽宁省| 阿图什市| 茌平县| 长寿区| 北流市| 城固县| 嵊泗县| 扎鲁特旗| 区。| 剑川县|