从preg_split打印数组

时间:2011-12-08 23:39:42

标签: php preg-split

您好我试图打印数组的内容。

这是代码:

while ($row = mysql_fetch_assoc($result)) {
    $pattern = '[<td[^>]*>(.*?)</td>]';
    $content = preg_split( $pattern, $row['introtext'], NULL );
    echo '<tr>';
    echo '<td align="center" valign="top" class="table-cursos-links">';
    echo  $n++; 
    echo '</td>';
    echo '<td align="center" valign="top" class="table-cursos-links">';
    echo  '<a target="_parent" href="http://cttcorp.hexasystems.com/index.php?option=com_content&view=article&id='.$row['id'].':'.$row[alias].'&catid='.$row['catid'].'">'.$row['title'].' </a>'; 
    echo '</td>';
    echo '<td align="center" valign="top" class="table-cursos-links">'. $content[2] .'</td>';
    echo '</tr>'; 

它不会打印任何内容。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

  

知道问题是正则表达式,基本上我只想要&lt; td&gt;里面的文字。和&lt; / td&gt;

那么你有正确的正则表达式,但使用它错了。使用preg_split时,正则表达式匹配的所有内容都将删除。如果您的$row['introtext']包含_<td>data</td>_之类的内容,那么您将收到一个包含两个空字符串或空格或其他剩余内容的数组。

改为使用preg_match

preg_split( $pattern, $row['introtext'], $match );

print $match[1];