php中替换为已定义变量的唯一关键字
我想要一个php函数,用定义的值替换一些唯一的单词。 i、 e 现在我希望输出为: 这是一个虚拟文本,带有网站Stackoverflow的名称(&N) 我有一个与PHP5.4配合良好的函数php中替换为已定义变量的唯一关键字,php,preg-replace,deprecated,Php,Preg Replace,Deprecated,我想要一个php函数,用定义的值替换一些唯一的单词。 i、 e 现在我希望输出为: 这是一个虚拟文本,带有网站Stackoverflow的名称(&N) 我有一个与PHP5.4配合良好的函数 define("URL","http://example.com"); define("WEBSITE","Stackoverflow"); function magicKeyword($data) { $URL = URL; $SITENAME = WEBSITE; return preg_replace(
define("URL","http://example.com");
define("WEBSITE","Stackoverflow");
function magicKeyword($data) {
$URL = URL;
$SITENAME = WEBSITE;
return preg_replace('/\{([A-Z]+)\}/e', "$$1", $data);
}
但在PHP5.5中,他们不赞成使用/e修饰符
不推荐使用:preg\u replace():不推荐使用/e修饰符,请改用preg\u replace\u回调
现在请帮助我。为什么不直接从函数返回
$string
define("URL","http://example.com");
define("WEBSITE","Stackoverflow");
function magicKeyword() {
$URL = URL;
$SITENAME = WEBSITE;
$string = "This is a dummy text with $URL & name of website $SITENAME";
return $string;
}
echo magicKeyword(); //This is a dummy text with http://example.com & name of website Stackoverflow
或者使用str\u replace()
回调函数的使用方式如下:
define("URL","http://example.com");
define("WEBSITE","Stackoverflow");
$string = "This is a dummy text with {URL} & name of website {WEBSITE}";
function magicKeyword($data) {
return preg_replace_callback('/\{([A-Z]+)\}/', "magicKeywordCallback", $data);
}
function magicKeywordCallback($matches) {
if (defined($matches[1]))
return constant($matches[1]);
// otherwise return the found word unmodified.
return $matches[0];
}
$result = magicKeyword($string);
var_dump($result);
结果:
字符串(76)“这是一个虚拟文本,带有网站Stackoverflow的名称(&N)”
尝试使用
str\u replace
您需要一个arrayOMG循环。它简单又短。非常感谢杰拉尔德·施耐德。非常感谢你。
define("URL","http://example.com");
define("WEBSITE","Stackoverflow");
$string = "This is a dummy text with {URL} & name of website {WEBSITE}";
function magicKeyword($string) {
$URL = URL;
$SITENAME = WEBSITE;
$string = str_replace(array('{URL}', '{WEBSITE}'), array($URL, $SITENAME), $string);
return $string;
}
echo magicKeyword($string);
define("URL","http://example.com");
define("WEBSITE","Stackoverflow");
$string = "This is a dummy text with {URL} & name of website {WEBSITE}";
function magicKeyword($data) {
return preg_replace_callback('/\{([A-Z]+)\}/', "magicKeywordCallback", $data);
}
function magicKeywordCallback($matches) {
if (defined($matches[1]))
return constant($matches[1]);
// otherwise return the found word unmodified.
return $matches[0];
}
$result = magicKeyword($string);
var_dump($result);