麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 語言 > PHP > 正文

php file_get_contents數(shù)據(jù)采集與常用見問題解決

2024-09-04 11:48:10
字體:
供稿:網(wǎng)友

在批量的數(shù)據(jù)采集在php中很少會(huì)使用file_get_contents函數(shù)來操作,但是如果是小量的我們可以使用file_get_contents函數(shù)操作,因?yàn)樗坏糜枚液唵我讓W(xué),下面我來介紹file_get_contents用法與使用過程中的問題解決辦法。

先來看問題,file_get_contents不能獲取帶端口的網(wǎng)址,例如如下代碼:

file_get_contents('http://localhost:12345');

沒有任何獲取,解決方法是:關(guān)閉selinux

1 永久方法 – 需要重啟服務(wù)器

修改/etc/selinux/config文件中設(shè)置SELINUX=disabled ,然后重啟服務(wù)器。

2 臨時(shí)方法 – 設(shè)置系統(tǒng)參數(shù)

使用命令setenforce 0附:

setenforce 1 設(shè)置SELinux 成為enforcing模式

setenforce 0 設(shè)置SELinux 成為permissive模式

file_get_contents超時(shí),代碼如下:

  1. function _file_get_contents($url
  2.   $context = stream_context_create(array
  3.      'http' => array
  4.       'timeout' => 180 //超時(shí)時(shí)間,單位為秒 
  5.      )  
  6.   ));   
  7.   return @file_get_contents($url, 0, $context); 

好了上面的問題得到解決之后我們可以開始采集了,代碼如下:

  1. <?php  
  2. //全國,判斷條件是$REQUEST_URI是否含有html  
  3. if (!strpos($_SERVER["REQUEST_URI"],".html"))  
  4. {  
  5. $page="http://qq.ip138.com/weather/";  
  6. $html = file_get_contents($page,'r');  
  7. $pattern="/<B>全國主要城市、縣當(dāng)天和未來五天天氣趨勢預(yù)報(bào)在線查詢</B>(.*?)<center style="padding:3px">/si";  
  8. //正則匹配之間的html  
  9. preg_match($pattern,$html,$pg);  
  10. echo "";  
  11. //正則替換遠(yuǎn)程地址為本地地址  
  12. $p=preg_replace('//weather/(w+)/index.htm/''tq.php/$1.html'$pg[1]);  
  13. echo $p;  
  14. }  
  15. //省,判斷條件是$REQUEST_URI是否含有?  
  16. else if(!strpos($_SERVER["REQUEST_URI"],"?")){  
  17. //yoyo推薦的使用分割獲得數(shù)據(jù),這里是獲得省份名稱  
  18. $province=explode("/",$_SERVER["REQUEST_URI"]);  
  19. $province=explode(".",$province[count($province)-1]);  
  20. $province=$province[0];  
  21. //被注釋掉的是我自己寫出來的正則,感覺寫的不好,但效果等同上面  
  22. //preg_match('/[^/]+[.(html)]$/',$_SERVER["REQUEST_URI"],$pro);  
  23. //$province=preg_replace('/.html/','',$pro[0]);  
  24. $page="http://qq.ip138.com/weather/".$province."/index.htm";  
  25. //獲取html數(shù)據(jù)之前先嘗試打開頁面,防止惡意輸入地址導(dǎo)致出錯(cuò)  
  26. if (!@fopen($page"r")) {  
  27. die("對(duì)不起,該地址不存在!<a href=javascript:history.back(1)>點(diǎn)擊這里返回</a>");  
  28. exit(0);  
  29. }  
  30. $html = file_get_contents($page,'r');  
  31. $pattern="/五天天氣趨勢預(yù)報(bào)</B>(.*?)請(qǐng)輸入輸入市/si";  
  32. preg_match($pattern,$html,$pg);  
  33. echo "";  
  34. //正則替換,獲取省份,城市  
  35. $p=preg_replace('//weather/(w+)/(w+).htm/''$2.html?pro=$1'$pg[1]);  
  36. echo $p;  
  37. }  
  38. else {  
  39. //市,通過get傳遞省份  
  40. $pro=$_REQUEST['pro'];  
  41. $city=explode("/",$_SERVER["REQUEST_URI"]);  
  42. $city=explode(".",$city[count($city)-1]);  
  43. $city=$city[0];  
  44. //preg_match('/[^/]+[.(html)]+[?]/',$_SERVER["REQUEST_URI"],$cit);  
  45. //$city=preg_replace('/.html?/','',$cit[0]);  
  46. $page="http://qq.ip138.com/weather/".$pro."/".$city.".htm";  
  47. if (!@fopen($page"r")) {  
  48. die("對(duì)不起,該地址不存在!<a href=javascript:history.back(1)>點(diǎn)擊這里返回</a>");  
  49. exit(0);  
  50. }  
  51. $html = file_get_contents($page,'r');  
  52. $pattern="/五天天氣趨勢預(yù)報(bào)</B>(.*?)請(qǐng)輸入輸入市/si";  
  53. preg_match($pattern,$html,$pg);  
  54. echo "";  
  55. //獲取真實(shí)的圖片地址  
  56. $p=preg_replace('//image//''http://qq.ip138.com/image/'$pg[1]);  
  57. echo $p;  
  58. }  
  59. ?> 

如果上面辦法無法采集到數(shù)據(jù)我們可以使用以下代碼來處理,代碼如下:

  1. <?php  
  2. $url = "http://www.companysz.com";  
  3. $ch = curl_init();  
  4. $timeout = 5;  
  5. curl_setopt($ch, CURLOPT_URL, $url);  
  6. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  
  7. curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);  
  8. //在需要用戶檢測的網(wǎng)頁里需要增加下面兩行  
  9. //curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);  
  10. //curl_setopt($ch, CURLOPT_USERPWD, US_NAME.":".US_PWD);  
  11. $contents = curl_exec($ch);  
  12. curl_close($ch);  
  13. echo $contents;  
  14. ?> 

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 亚洲成人福利在线 | 中文字幕在线观看免费视频 | 天堂亚洲一区 | 亚洲视频欧美 | 香蕉国产在线视频 | 黄色av片三级三级三级免费看 | 草草在线观看 | 欧美视频国产精品 | 一级大片久久 | 一级黄色国产视频 | 99国产精品欲a | 99成人精品视频 | 久久国产精品区 | 一本视频在线观看 | 国产精品久久久久久久久久久久午夜 | 在线观看免费污视频 | 大学生a级毛片免费视频 | 爱草成年| 久久精品99国产国产精 | 色猫av| 欧美日本中文字幕 | 国产精品久久久久久久久久东京 | 蜜桃免费在线 | 欧美激情首页 | 国产免费午夜 | 国产一国产精品一级毛片 | av播放在线 | 操碰网 | 特色一级黄色片 | 久久久久免费精品 | 国产国语毛片 | 欧美淫视频 | 欧美一级片一区 | 久久国产成人午夜av浪潮 | 精精国产xxxx视频在线野外 | 91九色网 | 欧美日韩在线视频一区 | chinese xvideos gay| 国产成人精品自拍视频 | 久啪视频| 免费欧美 |