日期:2014-05-17 浏览次数:20778 次
//题目说得不是很清楚,汉字?是指a标签的内容,还是所有的中文?
//这里暂时以标签内容处理
$str = '<tr class="line">
<td align="center">[玄幻魔法]</td>
<td><a href="http://www.xiaoshuo5200.net/html/0/1/index.html">斗破苍穹</a></td>
<td><a href="http://www.xiaoshuo5200.net/html/0/1/640748.html" target="_blank">第一章 五帝破空</a></td>
<td>天蚕土豆</td>
<td>08-01</td>
<td align="center">连载</td>
<td align="center">1608</td>
</tr>';
preg_match_all('/<a.*href="(.*)".*>(.*)<\/a>/isU', $str, $matches);
foreach($matches[1] as $k=>$v) {
echo $v . '=>' . $matches[2][$k] . '<br/>';
}
/**
输出结果:
http://www.xiaoshuo5200.net/html/0/1/index.html=>斗破苍穹
http://www.xiaoshuo5200.net/html/0/1/640748.html=>第一章 五帝破空
*/
------解决方案--------------------
<?php
$str = <<<EOT
<tr class="line">
<td align="center">[玄幻魔法]</td>
<td><a href="http://www.xiaoshuo5200.net/html/0/1/index.html">斗破苍穹</a></td>
<td><a href="http://www.xiaoshuo5200.net/html/0/1/640748.html" target="_blank">第一章 五帝破空</a></td>
<td>天蚕土豆</td>
<td>08-01</td>
<td align="center">连载</td>
<td align="center">1608</td>
</tr>
EOT;
$patten = '/<td( +align *= *"[^"]*")?>(<a *href *= *"([^"]*)"( target="[^"]*")?>)?([^<>]*)(<\/a>)?<\/td>/isU';
preg_match_all($patten,$str,$arr);
echo "<pre>";
print_r($arr[3]);
print_r($arr[5]);
echo "</pre>";