如何replace我的string的某些部分?

我怎样才能用另外一个replace我的string的某个部分?

inputstring:

"Hello my name is Santa" 

我怎样才能用别的东西来改变我的string?

我想我需要一个foreach循环,但我不确定如何使用它。

 strtr ($str, array ('a' => '<replacement>')); 

更新

 strtr ("hello my name is santa", array ('a' => '<replacement>')); 

更准确地回答你的问题。

search和replace

有一些不同的function/方法可以用别的东西replace某个string的某个部分,都有其自身的优点。

str_replace()方法(二进制安全;区分大小写)

参数

混合str_replace(混合$ search ,混合$ replace ,混合$ subject [,int&$ count])

str_replace()有3个必需的参数,你可以在上面的定义中看到正确的顺序,所有这些都可以把一个string作为一个数组作为参数!

search和replace

  • search(string)和replace(string) →用replacestringreplacesearchstring。

  • search(数组)和replace(string) →用replacestringreplace所有的search元素。

  • search(string)AND replace(array) →抛出一个提示:“注意:数组到string的转换”,因为只有一个searchstring的replace数组没有意义,所以它会尝试将数组转换为string。

  • search(数组)和replace(数组) →用相应的replace元素replace每个search元素(键被忽略!)。

    • search(更多元素)和replace(更less元素) →用相应的replace元素replace每个search元素(对于缺lessreplace元素,将使用空string)。

    • search(更less元素)和replace(更多元素) →用相应的replace元素replace每个search元素(忽略不需要的replace元素)。

学科

  • 主题(string) →对主题string进行replace。

  • 主题(数组) →对每个数组元素进行replace。

 echo str_replace("search", "replace", "text search text"); echo str_replace(["t", "a"], "X", "text search text"); echo str_replace("search", ["replace1", "replace2"], "text search text"); echo str_replace(["a", "c"], ["X", "Y"], "text search text"); 

产量

 text replace text XexX seXrch XexX Notice: Array to string conversion text seXrYh text 

笔记

  1. 疑难杂症!

    重要的是要知道str_replace()从左到右的数组。 这意味着它可以replace您已经replace的值。 例如:

     echo str_replace(array("a", "b"), array("b", "c"), "aabb"); //Probably expected output: bbcc //Actual output: cccc 
  2. 不区分大小写

    如果你想使search不区分大小写,你可以使用str_ireplace() (注意i不区分大小写)。

  3. multidimensional array

    str_replace() / str_ireplace()不适用于multidimensional array。 请参阅此手册对此类实施的评论 。 当然你也可以用str_ireplace()来replacestr_replace() ,不区分大小写。

如果你想把所有东西放在一起,并创build一个函数,也适用于multidimensional array不区分大小写,你可以做这样的事情:

 <?php function str_ireplace_deep($search, $replace, $subject) { if (is_array($subject)) { foreach($subject as &$oneSubject) $oneSubject = str_ireplace_deep($search, $replace, $oneSubject); unset($oneSubject); return $subject; } else { return str_ireplace($search, $replace, $subject); } } ?> 

str_replace对于简单的replace作业来说是足够的( 比如replace单个字母 ),但是通常build议使用preg_replace( 如果你想要更灵活或者多function的东西 ),因为它灵活多变。 而“a”只是一个例子…:

 $String = preg_replace('/<string>/','<replacement>',$String); 

或者,如果你想一次多个replace:

 $String = preg_replace(array('/<string 1>/','/<string 2>/'),array('<replacement 1>','<replacement 2>'),$String); 

preg_replace可能,不幸的是,使用相当棘手。 我推荐以下内容: http : //php.net/manual/en/function.preg-replace.php http://www.phpro.org/tutorials/Introduction-to-PHP-Regex.html

另外,如果您决定使用str_replace(),并且您的replace需要区分大小写,那么您将需要str_ireplace()。

这可以工作也没有任何的PHP strfunction在这里改变你的“一”到“&”&符:

 for ($i=0; $i<strlen($str); $i++){ if ($str[$i]=='a'){ $str[$i]='&amp;'; } } echo $str; 

使用函数preg_replace()

 $text ='this is Old word'; echo $text; echo '<br>'; $text = preg_replace('/\bOld word\b/', 'NEW WORD', $text); echo $text;