PHP字符串替换

时间:2011-02-07 12:18:24

标签: php

我有一个可以浏览类别的页面。但是我有一个字符集问题,列表中的所有项目符号项都是以“coming”形式出现的,所以我想做的是用正确的HTML Enc类型替换它们“•”

我已经创建了可以解决此问题的脚本,但是如果可能的话我需要尝试在页面加载上实现这一点吗?所以任何想法都值得赞赏。

我的代码是:

[PHP]

<?php
 $search = array("•");
 $replace = array("&#x2022;");
?>

[HTML]

<span style="color: rgb(255, 255, 255); font-size: 14pt;"><span style="font-family: Verdana;"><span style="font-weight: bold;"></span></span></span><span style="font-family: Verdana; color: rgb(186, 66, 101); font-weight: bold;"><br />
    <br />
    •</span><span style="font-family: Verdana; color: rgb(105, 105, 105);"><span style="color: rgb(105, 105, 105);"><span style="color: rgb(186, 66, 101);"></span> <span style="font-size: 8pt;">Impellers for drinks mixers</span></span></span>.<br style="font-family: Verdana; color: rgb(105, 105, 105);" />

<span style="font-family: Verdana; color: rgb(186, 66, 101); font-weight: bold;">•</span><span style="font-family: Verdana; color: rgb(105, 105, 105);"><span style="color: rgb(105, 105, 105);"><span style="color: rgb(186, 66, 101);"></span></span></span><span style="font-family: Verdana; color: rgb(105, 105, 105);"> <span style="font-size: 8pt;">Additional malt cups.</span> </span><br style="font-family: Verdana; color: rgb(105, 105, 105);" />
<span style="font-family: Verdana; color: rgb(186, 66, 101); font-weight: bold;">•</span><span style="font-family: Verdana; color: rgb(105, 105, 105);"><span style="color: rgb(105, 105, 105);"><span style="color: rgb(186, 66, 101);"></span></span></span><span style="font-family: Verdana; color: rgb(105, 105, 105);"> <span style="font-size: 8pt;">Blender containers</span></span>.<br style="font-family: Verdana; color: rgb(105, 105, 105);" />
<span style="font-family: Verdana; color: rgb(105, 105, 105);"><span style="color: rgb(255, 69, 0);"></span></span><br />
<span style="font-family: Verdana;"><span style="color: rgb(91, 91, 91);"><br />

        </span></span><br />
<?php echo str_replace($search,$replace,"•"); ?> 

3 个答案:

答案 0 :(得分:1)

我想你是用PHP生成HTML代码的。如果我是对的,你应该将替换代码放在生成的PHP脚本中,并在将代码发送回浏览器之前执行服务器上的所有替换。

答案 1 :(得分:1)

而不是:

<?php echo str_replace($search,$replace,"•"); ?> 

所有以前的HTML都应该是•所在的位置。例如,如果您将所有类别HTML放入字符串$categories中,您可以执行以下操作:

<?php echo str_replace($search, $replace, $categories); ?>

这样str_replace就可以编辑HTML而不是那个字符串。

答案 2 :(得分:1)

只需在php上完成。

$toPrint = <<<EOF

<span style="color: rgb(255, 255, 255); font-size: 14pt;"><span style="font-family: Verdana;"><span style="font-weight: bold;"></span></span></span><span style="font-family: Verdana; color: rgb(186, 66, 101); font-weight: bold;"><br />
    <br />
    •</span><span style="font-family: Verdana; color: rgb(105, 105, 105);"><span style="color: rgb(105, 105, 105);"><span style="color: rgb(186, 66, 101);"></span> <span style="font-size: 8pt;">Impellers for drinks mixers</span></span></span>.<br style="font-family: Verdana; color: rgb(105, 105, 105);" />

<span style="font-family: Verdana; color: rgb(186, 66, 101); font-weight: bold;">•</span><span style="font-family: Verdana; color: rgb(105, 105, 105);"><span style="color: rgb(105, 105, 105);"><span style="color: rgb(186, 66, 101);"></span></span></span><span style="font-family: Verdana; color: rgb(105, 105, 105);"> <span style="font-size: 8pt;">Additional malt cups.</span> </span><br style="font-family: Verdana; color: rgb(105, 105, 105);" />
<span style="font-family: Verdana; color: rgb(186, 66, 101); font-weight: bold;">•</span><span style="font-family: Verdana; color: rgb(105, 105, 105);"><span style="color: rgb(105, 105, 105);"><span style="color: rgb(186, 66, 101);"></span></span></span><span style="font-family: Verdana; color: rgb(105, 105, 105);"> <span style="font-size: 8pt;">Blender containers</span></span>.<br style="font-family: Verdana; color: rgb(105, 105, 105);" />
<span style="font-family: Verdana; color: rgb(105, 105, 105);"><span style="color: rgb(255, 69, 0);"></span></span><br />
<span style="font-family: Verdana;"><span style="color: rgb(91, 91, 91);"><br />

        </span></span><br />

EOF;

echo str_replace($search,$replace,$toPrint);