0

我有一个像这样的普通段落:

<p>Hey there, I'm a normal paragraph. generated by a Wordpress blog</p>

我想改变:

<p> with <h2> and </p> with </h2>

我用了str_replace();

$paragraph = array("<p>", "</p>");
$heading2 = array("<h2>","</h2>");
$first_sentence = str_replace($paragraph, $heading2, $first_sentence);

它应该可以工作,但我明白了:

<h2>Hey there, I'm a normal paragraph. generated by a Wordpress blog<p>/p&gt;</p>

任何想法为什么?

4

1 回答 1

0

您可以将 Regex 用于此类任务:

$first_sentence = preg_replace('/<p>([^<]+)<\/p>/', '<h2>$1</h2>', $first_sentence);

([^<]+)意思是:捕获所有字符,直到<发生。

在这里你可以看到它的工作:http ://codepad.viper-7.com/FW1vm5

但如果它变得更复杂,你应该使用其他技术(如 DOM 解析器)

于 2012-10-07T10:00:28.280 回答