如何对get_defined_vars返回的所有内容执行str_replace? (php)
问题描述:
如何在get_defined_vars中返回的所有内容上执行str_replace?用普通的字符串来做这件事很简单,但是对象/类呢?如何对get_defined_vars返回的所有内容执行str_replace? (php)
答
这听起来像一个坏主意,所以我只会回答硬编码域的实际问题。直接解决这个问题,而不是在糟糕的结构上应用更多的bandaid。
您应该使用常量(使用文本编辑器搜索/替换,而不是PHP)替换每个硬编码域的出现,然而您可以随意切换。
if (/* something */) {
define('MYAPP_BASE_URL', 'http://example.com');
} else {
define('MYAPP_BASE_URL', 'http://example2.com');
}
…
$url = MYAPP_BASE_URL;
更好的是,您的代码应该足够动态,以便使用$_SERVER['HTTP_HOST']
开始。
你是否真的想在所有定义的变量**中替换**?也许你可以详细说明你的用例? – deceze 2010-07-11 01:23:43
是的。我硬编码的网址在一切,现在即时通讯域名切换,所以而不是有每个文件的两个版本(每个域的一个),我将只是运行一个str_replace和repalce domain1.com从每个变量(其中很多)到domain2.com – phpno 2010-07-11 01:28:26
在您的代码编辑器中进行搜索和替换。像'找到/替换所有文件夹' – 2010-07-11 01:31:12