1. 程式人生 > >PHP 獲取網頁內容的三種方法

PHP 獲取網頁內容的三種方法

抓取到的內容在通過正則表示式做一下過濾就得到了你想要的內容。

file_get_contents() 把整個檔案讀入一個字串中。

Java程式碼 
  1. <meta charset="utf-8">    
  2. <?php   
  3. $url = "http://onestopweb.iteye.com/";   
  4. $contents = file_get_contents($url);   
  5. //如果出現中文亂碼使用下面程式碼 
  6. //$getcontent = iconv("gb2312", "utf-8",$contents); 
  7. echo $contents;   
  8. ?>  

curl_init() 初始化一個新的會話,返回一個cURL控制代碼,供curl_setopt(), curl_exec()和curl_close() 函式使用。

下載

Java程式碼 
  1. <meta charset="utf-8">    
  2. <?php   
  3. $url = "http://onestopweb.iteye.com/";   
  4. $ch = curl_init();   
  5. $timeout = 5;   
  6. curl_setopt($ch, CURLOPT_URL, $url);   
  7. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);   
  8. curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);   
  9. //在需要使用者檢測的網頁裡需要增加下面兩行 
  10. //curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY); 
  11. //curl_setopt($ch, CURLOPT_USERPWD, US_NAME.":".US_PWD); 
  12. $contents = curl_exec($ch);   
  13. curl_close($ch);   
  14. echo $contents;   
  15. ?>   

fopen->fread->fclose 檔案流
fopen() 函式開啟檔案或者 URL。
fread() 函式讀取檔案。
fclose() 函式關閉一個開啟檔案。

Java程式碼 收藏程式碼
  1. <meta charset=
    "utf-8">    
  2. <?php   
  3. $handle = fopen ("http://onestopweb.iteye.com/""rb");   
  4. $contents = "";   
  5. do {   
  6.     $data = fread($handle, 1024);   
  7.     if (strlen($data) == 0) {   
  8.         break;   
  9.     }   
  10.     $contents .= $data;   
  11. while(true);   
  12. fclose ($handle);   
  13. echo $contents;   
  14. ?>   

PS:
1.使用file_get_contents和fopen必須空間開啟allow_url_fopen。方法:編輯php.ini,設定allow_url_fopen = On,allow_url_fopen關閉時fopen和file_get_contents都不能開啟遠端檔案。 下載
2.使用curl必須空間開啟curl。方法:windows下修改php.ini,將extension=php_curl.dll前面的分號去掉,而且需要拷貝ssleay32.dll和libeay32.dll到 C:\Windows\system 或者 C:\Windows\System32。

如圖:

 

我的系統是WIN7的64位,把兩個dll檔案放在這個資料夾中就起效果了。下載