如何将字符串中的令牌替换为 PHP 中的指定值


how to replace the token in a string with the specified value in php?

php 中是否有任何函数可以像这样执行:

_str_replace(嗨%用户名,您的密码是%pwd,'David','P@ssw0rd')将返回字符串"嗨大卫,您的密码已P@ssw0rd"

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); 的函数体

str_replace就是你要找

$string = "hi %username your password is %pwd";
$string = str_replace("%username", $username, $string);
$string = str_replace("%pwd",$password, $string):
echo $string;

如果字符串的第一部分是静态的,为什么不直接连接变量呢?这可能会为您提供更大的灵活性。

$username= "david";
$password = "password";
echo "hi". $username . "your password is". $password;