程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP抓取網頁內容的技巧分享

PHP抓取網頁內容的技巧分享

編輯:關於PHP編程

如何才能正確的實現可為什麼PHP抓取網頁內容後沒反應呢?連測試的文字都沒有,要是我把echo "測試一下";放到第一行就可以輸出,我估計是curl_init()函數還沒有運行!

你看看PHP的phpinfo()中有沒有CURL擴展支持!

把php_curl.dll拷到c:windows和c:windowssystem32裡面 重啟apache之後再試試看

不是php_curl.dll這個文件,是把php目錄中的libeay32.dll,ssleay32.dll拷到c:windowssystem32裡面 重啟apache

為了服務器安全著想,所以把allow_url_fopen關掉了。

當服務器allow_url_fopen = Off 時,就不能用file_get_contents,只有設置ON時可以用。

  1. < ?php /*  
  2. $getstr=file_get_contents("http://www.
    163.com/weatherxml/54511.xml");  
  3. $qx=explode(""",strstr($getstr,"qx="));  
  4. $wd=explode(""",strstr($getstr,"wd="));  
  5. $qximg=explode(""",strstr($getstr,"qximg="));  
  6. $qximg_=explode(",",$qximg[1]);  
  7. echo "北京&nbsp;".$qx[1]."";  
  8. echo $wd[1];*/  
  9. //echo "< img src='http://news.
    163.com/img/logo/".$qximg_[0]."'>
    < img src='http://news.163.com
    /img/logo/".$qximg_[1]."'>";  
  10. ?> 

以下PHP抓取網頁內容的范例是通curl_init函數來獲取163天氣預報

把php.ini裡( ;extension=php_curl.dll ) 前面的(;)去掉保存

把php_curl.dll,libeay32.dll,ssleay32.dll拷到c:windowssystem32裡,重啟IIS即可,沒有裝apache

  1. < ?php  
  2. //初始化curl  
  3. $ch = curl_init() or die (curl_error());  
  4. //設置URL參數  
  5. curl_setopt($ch,CURLOPT_URL,"http:
    //www.163.com/weatherxml/54511.xml");  
  6. //要求CURL返回數據  
  7. curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);  
  8. //執行請求  
  9. $result = curl_exec($ch) or die (curl_error());  
  10. //取得返回的結果,並顯示  
  11. //echo $result;  
  12. // echo curl_error($ch);  
  13. $qx=explode(""",strstr($result,"qx="));  
  14. $wd=explode(""",strstr($result,"wd="));  
  15. $qximg=explode(""",strstr($result,"qximg="));  
  16. $qximg_=explode(",",$qximg[1]);  
  17. echo "北京&nbsp;".$qx[1]."< br />";  
  18. echo $wd[1];  
  19. //關閉CURL  
  20. curl_close($ch);  
  21. ?> 

通過以上對PHP抓取網頁內容的學習,大家可以自行實際操作一遍,加深對它的理解。


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved