我有一个包含HTML标记的字符串,$paragraph
:
$paragraph = '
<p class="instruction">
<sup id="num1" class="s">80</sup>
Hello there and welcome to Stackoverflow! You are welcome indeed.
</p>
';
$replaceIndex = array(0, 4);
$word = 'dingo';
我想替换$replaceIndex
$paragraph
(0和4)定义的索引处的单词。通过这个,我的意思是我想用$word
替换单词“80”和“welcome”(仅第一个实例)。段落本身可以在不同的地方使用不同的HTML标记进行格式化。
有没有办法在忽略(但不剥离)HTML标签的同时找到并替换字符串的某些单词?
谢谢!
编辑:单词由(多个)标签和(多个)空白字符分隔,而不包括标签内的任何内容。
答案 0 :(得分:2)
感谢您的所有提示。我想到了!由于我是PHP的新手,如果任何PHP资深人士都有关于简化代码的任何提示,我会很感激。谢谢!
0 6652,
*唯一需要注意的是,这可能会在$ newParagraph中产生不需要的空格,但我会在实现代码时看到这是否会导致任何问题。
答案 1 :(得分:1)
$text = preg_replace('/\b80\b|\bwelcome\b/', $word, $paragraph);
希望这会对你有所帮助:)。
答案 2 :(得分:0)
SimpleXML也可以派上用场:
$paragraph = '
<p class="instruction">
<sup id="num1" class="s">80</sup>
Hello there and welcome to Stackoverflow! You are welcome indeed.
</p>
';
$xml = simplexml_load_string($paragraph);
$xml->sup = $word;