1
我想为我的页面解析HTML标题并添加一个ID以匹配内容。我已经成功与find做到这一点和替换,但是当任何附加的HTML属性都存在失败...PHP为标题添加标识属性
下面有什么头阵列中的改变
[
'find' => sprintf('<h%u>%s</h%u>', $level, $title, $level),
'replace' => sprintf('<h%u id="%s">%s</h%u>', $level, slugify($title), $title, $level),
'slug' => slugify($title)
]
的更换是后来做...
foreach ($parsed_content as $fix) {
$content = str_replace($fix['find'], $fix['replace'], $content);
}
这是不这样做,我知道最好的方式,但它只是一个测试,现在,使其正常工作,我想我只需要使用正则表达式,而不是一个标准的str_replace呼叫。
我正在使用DOMDocument,会有一种替代方法可能吗?
编辑:我试图用xpath来mainipulate html。我有一个简单的循环来获取数据,但我不知道如何将代码应用于实际文档。有任何想法吗?下面有什么,我有个大气压
$dom = new DOMDocument;
$dom->loadHTML($the_dom);
$xpath = new DOMXPath($dom);
$elements = $xpath->query('(//h1|//h2|//h3|//h4|//h5)');
foreach ($elements as $index => $element) {
$element->setAttribute('id', sanitize_title($element->textContent));
pr($element);
}
这个传奇职位将再次生活! http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454 –