php中有没有像这样的功能:
_str_replace(高%用户名,密码为%pwd,'大卫','P @ ssw0rd')将返回字符串“hi David,您的密码是P @ ssw0rd”
答案 0 :(得分:5)
printf('Hi %s, your password is %s', 'David', 'P@ssw0rd');
如果您不希望它立即回显,请使用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;
}
......但我不会打扰。您无法在函数中按原始名称引用变量,因为该信息不会发送到函数。
如果您使用了关联数组......
function _str_replace($str, $vars) {
foreach($vars as $name => $var) {
$str = preg_replace('/%' . preg_quote($name, '/') . '/', $var, $str);
}
return $str;
}
或者,如果您想在关联数组中发送标识符,可以将其替换为具有return str_replace(array_keys($vars), array_values($vars), $str);
的函数体
答案 1 :(得分:-1)
str_replace
正是您要找的
$string = "hi %username your password is %pwd";
$string = str_replace("%username", $username, $string);
$string = str_replace("%pwd",$password, $string):
echo $string;
答案 2 :(得分:-1)
如果字符串的第一部分是静态的,为什么不连接变量呢?这可以为您提供更大的灵活性。
$username= "david";
$password = "password";
echo "hi". $username . "your password is". $password;