我知道我可以在 PHP 的正则表达式中替换术语的动态部分:
preg_replace('/(test1)(test2)(test3)/',"$3$2$1",$string);
(不知何故,我不知道这是否正确,但这不是我要找的)
我希望在正则表达式中使用它,例如:
preg_match_all("~<(.*)>.*</$1>~",$string,$matches);
“<”和“>”之间的第一部分是动态的(因此可以找到 html 中存在的每个标签,甚至可以找到自己的 xml 标签),我想在同一个正则表达式中再次引用它。
但这对我不起作用。这甚至可能吗?我有一台 PHP 5.3 的服务器
/编辑:
我的最终目标是:
如果有一个带有例如以下源代码的 html 页面:HTML
<html>
<head>
<title>Titel</title>
</head>
<body>
<div>
<p>
p-test<br />
br-test
</p>
<div>
<p>
div-p-test
</p>
</div>
</div>
</body>
</html>
处理后它应该看起来像
$htmlArr = array(
'html' => array(
'head' => array('title' => 'Titel'),
'body' => array(
'div0' => array(
'p0' => 'p-test<br />br-test',
'div1' => array(
'p1' => 'div-p-test'
)
)
)
));