作者cychi (sss)
看板PHP
标题Re: [请益] preg_match_all 问题
时间Sat May 5 03:51:35 2012
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)