有没有办法在PHP中使用预定义的内容自动替换回显的单词或短语?我尝试使用define()
,但这不符合我想要的方式(或者我可能没有正确使用。
在我的数据库中,我有美国所有州,但他们的名字缩写为; MO,AK,AL,IL ......
我想要做的是创建一个文件,将MO定义为Missouri,将IL定义为Illinois,当MO回显时,它会自动替换为Missouri。
有没有好办法呢?
答案 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);