带有外卡的PHP str_replace?

时间:2015-02-07 02:07:39

标签: php

我知道如何将str_replace用于简单的任务,例如......

$Header = str_replace('<h2>Animals</h2>', '<h3>Animals</h3>', $Header);

但想象一下存储在数据库中的文章,其中包含以下标题:

<h3>Animals</h3>
<h3>Plants</h3>

你想把它们改成这个:

<h3><span class="One">Animals</span></h3>
<h3><span class="One">Plants</span></h3>

有没有办法将标签之间的值(例如动物,植物,矿物等)变成外卡,这样的话?:

$Title = str_replace('<h3>*</h3>', '<h3><span style="One">*</span></h3>', $Title);

或者我应该问&#34;最好的方法是什么?&#34;看起来有办法做到这一点,但在开始与正则表达式进行搏斗之前,我想尝试找一个简单的PHP解决方案。

1 个答案:

答案 0 :(得分:10)

您可以使用主要评论中建议的str_replace()技术,但我相信preg_replace()使用正则表达式是通配符替换的最佳做法。

<?php
$str = <<<EOD

<h3>Animals</h3>
<h3>Plants</h3>

EOD;

$str = preg_replace('/<h3>(.*?)<\/h3>/', '<h3><span class="One">$1</span></h3>', $str);

echo $str;