[英]PHP preg_match_all reoccuring pattern
我正在尝试匹配开放标签。 存在打开包括子标记的父标记的问题。 捕获了父标记,但忽略了子标记。
例如
</p>
<p>hello world</p>
<p><img
preg_match_all('/<(\/?[a-z]+)[^>]*\/?>/i', $trimmed_text, $matches, PREG_OFFSET_CAPTURE | PREG_SET_ORDER);
将给出以下输出:
Array
(
[0] => Array
(
[0] => Array
(
[0] =>
[1] => 0
)
[1] => Array
(
[0] => /p
[1] => 1
)
)
[1] => Array
(
[0] => Array
(
[0] =>
[1] => 5 ) [1] => Array ( [0] => p [1] => 6 ) ) [2] => Array ( [0] => Array ( [0] =>
[1] => 19
)
[1] => Array
(
[0] => /p
[1] => 20
)
)
[3] => Array
(
[0] => Array
(
[0] =>
[1] => 24 ) [1] => Array ( [0] => p [1] => 25 ) ) )
父级中任何打开的标签是否都可能具有子集数组?
您很难做到这一点,请使用PHP简单HTML DOM解析器来解析html,
例如:
// Create DOM from URL or file
include('simple_html_dom.php');
$html = file_get_html('http://www.scroogle.org/');
// Find all images
foreach($html->find('img') as $element)
echo $element->src . '<br>';
// Find all links
foreach($html->find('a') as $element)
echo $element->href . '<br>';
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.