php中有没有像这样的功能:
_str_replace(高%用户名,密码为%pwd,'大卫','P @ ssw0rd')将返回字符串"hi David,您的密码是P @ ssw0rd"
printf('Hi %s, your password is %s', 'David', 'P@ssw0rd');
Run Code Online (Sandbox Code Playgroud)
如果您不希望它立即回显,请使用sprintf().
或者,你可以做这个功能......
function _str_replace() {
$args = func_get_args();
$str = array_shift($args);
foreach($args as $arg) {
$str = preg_replace('/%\w+/', $arg, $str, 1);
}
return $str;
}
Run Code Online (Sandbox Code Playgroud)
......但我不会打扰.您无法在函数中按原始名称引用变量,因为该信息不会发送到函数.
你可以使用一个关联数组......
function _str_replace($str, $vars) {
foreach($vars as $name => $var) {
$str = preg_replace('/%' . preg_quote($name, '/') . '/', $var, $str);
}
return $str;
}
Run Code Online (Sandbox Code Playgroud)
或者,如果要在关联数组中发送标识符,可以将其替换为函数体 return str_replace(array_keys($vars), array_values($vars), $str);