如何检测标签中的标签内容并将其替换(移动)到其他标签内容位置?

时间:2017-09-19 08:23:04

标签: php regex

我是php的初学者,特别是正则表达式的东西,所以我要做的是从其他标签中获取内容 <td> <br>(content)<br> </td> 到目前为止我所做的是将数据放入数组块

include_once('simple_html_dom.php');

$url = '(url_here)';

$htmlstr = str_get_html(file_get_contents($url));
$matches1 = [];
preg_match_all("'<td>(.*?)(</td>|</<td>)'si", $htmlstr, $matches1);
$data1 = array_chunk($matches1[0], 6, FALSE);

但是问题出现在带有td标签的某些行中我得到了像这样的标签内容

如何检测这些内部标记,如何获取该内容并将其移动到其他标记内容空间?

以下是我在某些行link_here

中面临的一个例子

1 个答案:

答案 0 :(得分:1)

不要将正则表达式用于HTML since there is no and will never be a 100% working solution

使用HTML解析器,例如内置的(DOMDocument)或用户贡献的(如PHP-HTML-Parser

使用DOMDocument时,您可以选择您想要的类似javascript的标签:

$dom = new DOMDocument();
$dom->loadHTML($yourHTML);

$tds = $dom->getElementsByTagName('td');