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

この種のタスクには正規表現を使用できます。

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

([^<]+)意味: 発生するまで、すべての文字をキャッチし<ます。

ここで動作を確認できます: http://codepad.viper-7.com/FW1vm5

ただし、より複雑になる場合は、他の手法を使用する必要があります (DOM パーサーなど)。

于 2012-10-07T10:00:28.280 に答える