Re: [請益] preg_match_all 問題
S1: match 整個tr內的column
$source = '表格字串';
$pattern = '#<td height=\"20\" align=\"middle\">\s*';
$pattern .= '<div align=\"center\">(?<date>.*)<\/div>\s*<\/td>\s*';
$pattern .= '<td height=\"20\" align=\"right\">\s*';
$pattern .= '<div align=\"center\">(?<number>.*)<\/div>\s*<\/td>#i';
preg_match_all($pattern, $source, $matches, PREG_SET_ORDER);
foreach($matches as $match)
{
echo $match["date"]; //日期欄位
echo $match["number"]; //數值欄位
}
要更精確可以把 .* 分別改成 match 日期 和 浮點數
S2: 比較簡單的方法 只match <div>
$pattern = '#<div align=\"center\">(.*)<\/div>#i';
$count = preg_match_all($pattern, $source, $matches, PREG_SET_ORDER);
for($i=0; $i<$count; $i=$i+2)
{
echo $matches[$i][1]; //日期欄位
echo $matches[$i+1][1]; //數值欄位
}
以上都可以 match 表格內多個以上的 tr
※ 引述《ROCK210502 (rock)》之銘言:
: <table width="590" border="0" align="center" cellpadding="0" cellspacing="1" class="board_trad">
: ass="board_trad">
: <tbody>
: <tr bgcolor="#FFFFFF" class="basic2">
: <td height="20" align="middle">
: <div align="center">101/04/03</div>
: </td>
: <td height="20" align="right">
: <div align="center">43.60</div>
: </td>
: </tr>
: </tbody>
: </table>
: 請問如果我要分別找到 101/04/03與43.60要怎麼用preg_match_all寫出來
: 小弟不才請各位見諒!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.168.67.237
※ 編輯: cychi 來自: 118.168.67.237 (05/05 03:55)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
PHP 近期熱門文章
PTT數位生活區 即時熱門文章