如何用PHP替换显示的输出

时间:2012-11-18 01:10:34

标签: php mysql

有没有办法在PHP中使用预定义的内容自动替换回显的单词或短语?我尝试使用define(),但这不符合我想要的方式(或者我可能没有正确使用。

在我的数据库中,我有美国所有州,但他们的名字缩写为; MO,AK,AL,IL ......

我想要做的是创建一个文件,将MO定义为Missouri,将IL定义为Illinois,当MO回显时,它会自动替换为Missouri。

有没有好办法呢?

3 个答案:

答案 0 :(得分:4)

最好的方法是缓冲输出然后处理它。

输出缓冲是通过在您想要回显之前调用ob_start()来完成的。然后,您可以使用ob_get_clean()获取所有回显的内容,并将其从缓冲区队列中取出。然后,您可以对其进行任何类型的处理,并再次回显。

一个简单的例子:

<?php
function echoState() { echo "NY"; }

ob_start();
echoState();
$output = ob_get_clean();
echo str_replace("NY","New York",$output);
?>

运行它,你将在页面上打印出纽约。

答案 1 :(得分:3)

有几种好方法。一种是创建一个包含文本的变量,然后对其进行操作,而不是立即回显字符串。

另一种方法是使用output buffering,它会将您回显并保存的所有内容保存起来,允许您构建页面,然后立即显示所有页面,或将其转储到变量中进行处理。

答案 2 :(得分:2)

用户str_replace(find,repalce,from);函数替换PHP中的任何内容。

如果要替换多个预先指定的值,请使用以下内容:

function replacer($searchArray,$replaceArray, $text){

        $searchArray = array("illinois","NewYork","LosAngeles");    
        $replaceArray = array("IL","NY","LA");  

        return str_replace($searchArray, $replaceArray, $text);
        }

现在,替换部分:

$text = "this is a full text containing everything you want to be replaced";

echo replacer(@$searchArray, @$replaceArray, $text);