失禮 資質駑鈍的我又來打擾了><
我要用php抓網頁內容
但url裡有$ 導致不能連結到我提供的網址
以下是我絕對不正確的code...
可以請問要怎麼讓他可以順利讀取網址嗎
還有我寫入txt的那邊也不對的樣子...
<?
$url = " eq '左營'&$orderby=SiteName&$skip=0&$top=1000";
$lines_array = file($url);
$lines_string = implode('', $lines_array);
eregi("<d:SO2>(.*)</d:SO2>", $lines_string, $d);
$fp=fopen("data.txt","r+");
fputs($fp,$d);
echo $d[0];
fclose($fp);
?>

共 1 則回應

0
好像有點晚了...不知道解決沒.....不過還是回一下好了...
1.用脫溢字元"\"加在前面 or 改成單引號(不過裡面的單引號就要加"\")
2.這個網站剛剛測了下有點麻煩,所以改成直接丟HTTP GET Request....
3.可以善用var_dump()這東西debug
4. php官網的手冊跟stackoverflow都是很好的參考資料來源....php這東西google一下就一堆了= =

附上code:
<?php
function http_send($host, $packet)
{
if (!($sock = fsockopen($host,80,$err_no,$err_str)))
die($err_no.': '.$err_str);

fwrite($sock, $packet);
return stream_get_contents($sock);
}
$location = rawurlencode('左營');
$header = <<<EOF
GET /ws/Data/AQX/?\$filter=SiteName%20eq%20'{$location}'&\$orderby=SiteName&\$skip=0&\$top=1000 HTTP/1.1
Host: opendata.epa.gov.tw
Connection: close


EOF;

$res = http_send('opendata.epa.gov.tw', $header);
var_dump($res);
preg_match_all("/<d:SO2>(.*)<\/d:SO2>/" ,$res, $out);
var_dump($out);
var_dump($out[1][0]);

$fp=fopen("data.txt","a+");
fputs($fp,$out[1][0]."\r\n");
echo $out[1][0];
fclose($fp);
馬上回應搶第 2 樓...
回應...