如何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
笔记
-
疑难杂症!
重要的是要知道
str_replace()
从左到右的数组。 这意味着它可以replace您已经replace的值。 例如:echo str_replace(array("a", "b"), array("b", "c"), "aabb"); //Probably expected output: bbcc //Actual output: cccc
-
不区分大小写
如果你想使search不区分大小写,你可以使用
str_ireplace()
(注意i
不区分大小写)。 -
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]='&'; } } echo $str;
使用函数preg_replace()
$text ='this is Old word'; echo $text; echo '<br>'; $text = preg_replace('/\bOld word\b/', 'NEW WORD', $text); echo $text;