我們來看php手冊講述關於file_get_contents() 函數把整個檔案讀入一個字串中和 file() 一樣,不同的是 file_get_contents() 把檔案讀入一個字串。
file_get_contents() 函數是用於將檔案的內容讀入到一個字串中的首選方法
上面是協助手冊的是一次性把內容全部讀入記憶體了,後面的執行個體我們也會講到
_get_contents可以將遠程檔案讀入為一個字串,
而檔案行的分隔就是”rn”
explode將字串按”rn”分隔
代碼如下 |
複製代碼 |
$shadu_url = "http://localhost/demo.html"; $shadu_str = file_get_contents($shadu_url); $line_arr = explode("rn",$shadu_str); |
遠程請求地址,返回的處理結果資訊為字串,各欄位以‘|’隔開,行與行用‘rn’隔開
分別返回內容為,id,name,time,email
內容樣本
1|simaopig|2009-04-01|demo@simaopig.com
2|xiaoxiaozi|2009-04-02|demo@xiaoxiaozi.com
如我想要獲得每個欄位操作如下
代碼如下 |
複製代碼 |
$shadu_url = "http://localhost/demo.html"; $shadu_str = file_get_contents($shadu_url); $line_arr = explode("rn",$shadu_str); $result = array(); if(empty($line_arr)) { return array(); } foreach($line_arr as $line_str) { $record_arr = explode("|",$line_str); if($record_arr[0] == "-1") { // log continue; } $data = array(); $data['id'] = $record_arr[0]; $data['name'] = $record_arr[1]; $data['time'] = $record_arr[2]; $data['email'] = $record_arr[3]; $result[] = $data; } var_dump($result); |
結果自己查看吧,哈哈。
執行個體2
採集html頁面的內容
代碼如下 |
複製代碼 |
//全國,判斷條件是$REQUEST_URI是否含有html if (!strpos($_SERVER["REQUEST_URI"],".html")) { $page="http://qq.ip138.com/weather/"; $html = file_get_contents($page,'r'); $pattern="/全國主要城市、縣當天和未來五天天氣趨勢預報線上查詢(.*?)/si"; //正則匹配之間的html preg_match($pattern,$html,$pg); echo ""; //正則替換遠程地址為本地地址 $p=preg_replace('//weather/(w+)/index.htm/', 'tq.php/$1.html', $pg[1]); echo $p; } //省,判斷條件是$REQUEST_URI是否含有? else if(!strpos($_SERVER["REQUEST_URI"],"?")){ //yoyo推薦的使用分割獲得資料,這裡是獲得省份名稱 $province=explode("/",$_SERVER["REQUEST_URI"]); $province=explode(".",$province[count($province)-1]); $province=$province[0]; //被注釋掉的是我自己寫出來的正則,感覺寫的不好,但效果等同上面 //preg_match('/[^/]+[.(html)]$/',$_SERVER["REQUEST_URI"],$pro); //$province=preg_replace('/.html/','',$pro[0]); $page="http://qq.ip138.com/weather/".$province."/index.htm"; //擷取html資料之前先嘗試開啟頁面,防止惡意輸入地址導致出錯 if (!@fopen($page, "r")) { die("對不起,該地址不存在!點擊這裡返回"); exit(0); } $html = file_get_contents($page,'r'); $pattern="/五天天氣趨勢預報(.*?)請輸入輸入市/si"; preg_match($pattern,$html,$pg); echo ""; //正則替換,擷取省份,城市 $p=preg_replace('//weather/(w+)/(w+).htm/', '$2.html?pro=$1', $pg[1]); echo $p; } else { //市,通過get傳遞省份 $pro=$_REQUEST['pro']; $city=explode("/",$_SERVER["REQUEST_URI"]); $city=explode(".",$city[count($city)-1]); $city=$city[0]; //preg_match('/[^/]+[.(html)]+[?]/',$_SERVER["REQUEST_URI"],$cit); //$city=preg_replace('/.html?/','',$cit[0]); $page="http://qq.ip138.com/weather/".$pro."/".$city.".htm"; if (!@fopen($page, "r")) { die("對不起,該地址不存在!點擊這裡返回"); exit(0); } $html = file_get_contents($page,'r'); $pattern="/五天天氣趨勢預報(.*?)請輸入輸入市/si"; preg_match($pattern,$html,$pg); echo ""; //擷取真實的圖片地址 $p=preg_replace('//image//', 'http://qq.ip138.com/image/', $pg[1]); echo $p; } ?> |
http://www.bkjia.com/PHPjc/629097.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/629097.htmlTechArticle我們來看php手冊講述關於file_get_contents() 函數把整個檔案讀入一個字串中和 file() 一樣,不同的是 file_get_contents() 把檔案讀入一個字串。...