我知道如何将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解决方案。
答案 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;