如何使用本机PHP DOM Parser在html页面中查找和替换字符串?
要查找的示例字符串:"the <a href='site.com'>company</a> has been growing for the past 5 months";
父级是一个完整的HTML页面,例如该字符串的前一个可以是<div>
或<p>
。
该元素没有id或class。是否仍然可以找到并操纵它?
没有任何东西可以识别字符串或其前一个字符串。只有确切的字符串,即$ search_string包含的字符序列。
谢谢!
编辑:
$ string_to_replace = "the <a href='site.com'>company</a> has been growing for the past 5 months";
$ replacement_string = "<span class='someClass'>the <a href='site.com'>company</a> has been growing for the past 5 months";</span>
答案 0 :(得分:1)
由于这似乎跨越了具有子节点的节点的一部分,我将使用这样的替换:
// Text in $html
$find = "the <a href='site.com'>company</a> has been growing for the past 5 months";
$find_len = strlen( $find );
$start = strpos( $html, $find );
if ( $start !== false ) {
$html = substr( $html, 0, $start )
. '<span class="someClass">' . $find . '</span>'
. substr( $html, $start + $find_len );
}
我没有时间正确测试它,但它可能会指向正确的方向。
PHP DOM非常适合更改元素a
或其内容(公司)的href属性。如果$ find是<div>
- 元素