我知道如何将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);
或者我应该问"最好的方法是什么?"看起来有很多方法可以做到这一点,但在开始使用正则表达式之前,我想尝试找到一个简单的PHP解决方案。
您可以使用主注释中建议的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;