php中的字符串常用函数(三) str_replace() 子字符串替换
mixed str_replace ( mixed $search
, mixed $replace
, mixed $subject
[, int &$count
] );
该函数返回一个字符串或者数组。该字符串或数组是将 subject
中全部的 search
都被 replace
替换之后的结果。
返回值和前三个参数都可以为字符串或数组二者其一。第四个参数指定一个变量名为替换次数。
例1:参数全部为字符串。
$bodytag = str_replace ( "%body%" , "black" , "<body text='%body%'>" );
=>"<body text='black'>"
例2:参数1为数组,23为字符串。
$vowels = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U", "P", "h"); $onlyconsonants = str_replace($vowels, "@", "Hello world of php", $count);
=>"H@ll@ w@rld @f p@p" //这个例子的p没有被P匹配到。说明这个函数是大小写敏感的。如果需要忽略大小写可用str_ireplace()函数,用法一毛一样。
=>$count =>5//替换了5次。分别是 e、 o、 o、 o、 h
例3:
$str = "Line 1\nLine 2\rLine 3\r\nLine 4\n"; $order = array("\r\n", "\n", "\r"); $replace = '<br/>'; $newStr = str_replace($order, $replace, $str, $count);
=>$count=>4//替换了4次。分别是\n、\r、\r\n、\n。注意,⚠️因为$order中把\r\n写在前面所以第三次匹配没有分成两次\r,\n。
例4:
$letters = array( 'a' , 'p' ); $fruit = array( 'apple' , 'pear' ); $text = 'a p' ; $output = str_replace ( $letters , $fruit , $text , $count); echo $output ; echo $count;
=>猜一下会输出啥吧。例4能搞定。这个函数就可以了。