PHP简单的html dom解析器 - 找到单词

时间:2017-09-27 11:03:14

标签: php html dom

我使用PHP简单的html dom解析器库,我想用 [WORD FIND HERE] 替换所有'manteau'字样。这是我下面的代码,它不适用于不在标签中的单词。它仅适用于强标签中的“manteau”一词。如何解析所有节点文本?

注意: str_replace不是解决方案。需要在这里使用DOM PARSER。我不想在锚点或图像标签中选择单词。

adb shell am start -a android.intent.action.CALL -d tel:$phone_number
Starting: Intent { act=android.intent.action.CALL dat=tel:xxxxxxxxx }

2 个答案:

答案 0 :(得分:0)

使用str_replace();代替! http://php.net/manual/en/function.str-replace.php

$html = str_replace('manteau', 'rubber chicken', $html);
echo $html;

看到它在这里工作; https://3v4l.org/GRfji

答案 1 :(得分:0)

也许可以选择排除您不想更改的标签。

例如:

<?php
require_once '../simple_html_dom.php';
$html = new simple_html_dom();
$html = str_get_html('Un manteau permet de tenir chaud. Ce n\'est pas 
un porte-manteau. Venez découvrir le <a href="pages/manteau">nouveau 
manteau</a> du porte-manteau. 
<h1>Tout savoir sur le Manteau</h1>  
<p>
    Le <strong>manteau</strong> est un élèment important à ne pas négliger. 
    Pas comme le porte-manteau. 
</p>
<img src="path-to-images-manteau" title="Le manteau est beau">');


$nodes = $html->find('*');

$tagsToExclude = [
    "a",
    "img"
];

foreach($nodes as $node) {
    if (!in_array($node->tag, $tagsToExclude)) {
        if(strpos($node->innertext, 'manteau') !== false) {
            $node->innertext = str_replace("manteau", '[WORD FIND HERE]', $node->innertext);
        }
    }
}

echo $html->outertext;
?>