2012-03-15 130 views
1

str_replacemanual为PHP它规定如下:str_replace函数替代了PHP

因为str_replace()替换左到右,它可能会进行多次替换时替换以前插入的值。另请参阅本文档中的示例。

是否有一个相同的功能,没有这个问题或我该如何安全地做到这一点?

+0

你想替换哪里?你能举一个例子吗? – Bram 2012-03-15 14:25:01

+4

安全地做*什么*?谨慎解释**特定任务**,而不是解决您的困难? – 2012-03-15 14:25:06

+0

如果要替换多个字符串匹配,请规划要替换的内容并注意替换顺序。如果你的计划正确,没有什么天然不安全的功能。 – 2012-03-15 14:29:09

回答

10

您正在寻找strtr (string $str , array $replace_pairs)你可以做它切成小块。

如果给出两个参数,第二个参数应该是数组('from'=>'到',...)的数组。返回值是一个字符串,其中所有出现的数组键都被相应的值替换。将尝试最长密钥第一个。一旦子字符串被替换,其新值不会再被搜索。从手动

例子:

<?php 
$trans = array("h" => "-", "hello" => "hi", "hi" => "hello"); 
echo strtr("hi all, I said hello", $trans); 
?> 

将输出:

您好所有,我打了个招呼

这应该是正是你需要的。