有没有办法用预先定义的东西自动替换 PHP 中的回显单词或短语?我尝试使用define()
,但这不是我想要的方式(或者我没有正确执行它。
在我的数据库中,我有所有美国州,但它们的名称都是这样缩写的;密苏里州、阿拉斯加州、阿拉巴马州、伊利诺伊州...
我想做的是创建一个文件,将 MO 定义为密苏里州,将 IL 定义为伊利诺伊州,当 MO 被回显时,它会自动替换为密苏里州。
有没有好的方法来做到这一点?
最好的方法是缓冲输出然后处理它。
输出缓冲是通过调用 ob_start() 在你想要的内容即将被回显之前完成的。然后,您可以获取使用 ob_get_clean() 回显的所有内容,这会将其从缓冲区队列中取出。然后,您可以对其进行任何类型的处理,然后再次回显。
一个简单的例子:
<?php
function echoState() { echo "NY"; }
ob_start();
echoState();
$output = ob_get_clean();
echo str_replace("NY","New York",$output);
?>
运行它,您将在页面上打印纽约。
有几种好方法。一种是创建一个包含您的文本的变量,然后对其进行操作,而不是立即回显字符串。
另一种是使用输出缓冲,它接收你回显的所有内容并将其保存起来,允许你构建你的页面,然后一次显示它,或者将它转储到一个变量中进行处理。
用户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);