PHP:找取網上資料

2013-03-21 4:18 am
請教一下,有一個 onDuty.html 網頁有以下表格內容:

_____日期_________時間_____當值__
2013年3月20日 | 9:00 - 12:00 | Peter |
_________________________________
2013年3月20日 | 13:00 - 16:00 | May |
_________________________________
2013年3月20日 | 17:00 - 21:00 | Benny |

當我想寫個程式 grab.php 把以上表格找取下來,
放入自建的陣列變數,執行時把它們列印出來,
最後3句是:
for ($i = 1;$i <=3; $i++){
echo '日期 '+ $date($i) +'時間 '+$time($i) +'當值者= '$name($i);
echo '\n';
}

而程式執行的結果是:
日期 2013年3月20日 時間 9:00 - 12:00 當值者= Peter
日期 2013年3月20日 時間 13:00 - 16:00 當值者= May
日期 2013年3月20日 時間 17:00 - 21:00 當值者= Benny

如果呢個網頁,明天的資料更改,執行的 grab.php 也跟著改變,
這個程式如何寫出來?

謝謝各位高人!!

回答 (2)

2013-03-22 6:21 pm
✔ 最佳答案
這個不用SQL,如果要把資料傳入資料庫先要用,
可以參考PHP的指令preg_match_all -- 全域正規表達式
http://www.php5.idv.tw/modules.php?mod=books&act=show&shid=706

題目的程式: grab.php
<?php

//----- 定義要擷取的網頁地址
$url = "http://localhost/test1/onDuty.html";

//----- 讀取網頁源始碼
$fp = file_get_contents($url);

//----- 擷取資訊
preg_match_all ("|<[^>]+>(.*)</[^>]+>|U", $fp, $out);
$date[1] = $out[1][3];
$time[1] = $out[1][4];
$name[1] = $out[1][5];
$date[2] = $out[1][6];
$time[2] = $out[1][7];
$name[2] = $out[1][8];
$date[3] = $out[1][9];
$time[3] = $out[1][10];
$name[3] = $out[1][11];

//----- 印出結果
//echo $out[1][0].", ".$out[1][1].", ".$out[1][2]."\n";//date, time, name
//echo 'date= '.$out[1][3].", time= ".$out[1][4].", name= ".$out[1][5]."<br/>";
//echo 'date= '.$out[1][6].", time= ".$out[1][7].", name= ".$out[1][8]."<br/>";
for ($i = 1;$i <=3; $i++){
echo '日期 '. $date[$i] .'時間 '.$time[$i] .'當值者= '.$name[$i];
echo "<br/>";
}
?>
2013-03-22 2:27 am
不用SQL嗎?
恕我孤陋寡聞,
好像php 不能存取html
_| 小白x1 |_

PHP and SQL
_____________________________________________________
http://pydoing.blogspot.hk/2012/12/PHP-Understanding-of-SQL.html

http://www.1keydata.com/tw/sql/sqlselect.html

http://austintodo.pixnet.net/blog/post/23821431-php---mysql-%E6%95%99%E5%AD%B8


收錄日期: 2021-04-11 19:39:44
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20130320000051KK00316

檢視 Wayback Machine 備份