我想将包含多个特殊字符的数组字符串值替换为普通字符值。
$data['ENV_TEST'] = "rambo";
$data['ENV_DEV'] = "Project Bribara<"${ENV_TEST}"@gmail.com>"
echo str_replace("${ENV_TEST}", $data['ENV_DEV'], $data['ENV_DEV']);
也尝试了
echo str_replace("\"${ENV_TEST}\"", $data['ENV_DEV'], $data['ENV_DEV']);
"Project Bribara<rambo@gmail.com>"
"Project Bribara<"${ENV_TEST}"@gmail.com>"
如何获得预期的输出?
答案 0 :(得分:1)
PHP中的字符串连接是通过.
运算符完成的。你的代码是:
$data['ENV_DEV'] = "Project Bribara<".$data['ENV_TEST']."@gmail.com>"
答案 1 :(得分:1)
你应该在某个时间PHP strings。关于你的问题的双引号字符串的重要部分是你需要在每个$和每个“字符串内部”之前加一个反斜杠。你的代码将如下所示:
$data['ENV_TEST'] = "rambo";
$data['ENV_DEV'] = "Project Bribara<\"\${ENV_TEST}\"@gmail.com>";
echo str_replace("\${ENV_TEST}", $data['ENV_TEST'], $data['ENV_DEV']);
//also tried
echo "\n\n";
echo str_replace("\"\${ENV_TEST}\"", $data['ENV_TEST'], $data['ENV_DEV']);
如果你使用单引号字符串,你不需要转义$(参见手册),而不是\“,你需要转义单引号(但在你的例子中没有)。
$data['ENV_TEST'] = "rambo";
$data['ENV_DEV'] = 'Project Bribara<"${ENV_TEST}"@gmail.com>';
echo str_replace("\${ENV_TEST}", $data['ENV_TEST'], $data['ENV_DEV']);
//also tried
echo "\n\n";
echo str_replace('"${ENV_TEST}"', $data['ENV_TEST'], $data['ENV_DEV']);
我还修复了一个丢失的分号,并在一个地方用TEST替换了DEV。