Maison >développement back-end >tutoriel php >PHP 截取字符串函数 strtr/str_replace
/**
* 1. strtr 转换指定字符
*
* string strtr ( string $str , string $from , string $to )
* string strtr ( string $str , array $replace_pairs )
*
* 该函数返回 str 的一个副本,并将在 from 中指定的字符转换为 to 中相应的字符。
* 如果 from 与 to 长度不相等,那么多余的字符部分将被忽略。
*/
$str = 'http://flyer0126.iteye.com/';
echo strtr($str, 'IT', 'java');
//output: http://flyer0126.iteye.com/ strtr大小写敏感
//如果 from 与 to 长度不相等,那么多余的字符部分将被忽略
echo strtr($str, 'it', 'java');
//output: haap://flyer0126.jaeye.com/
//iteye --> jaeye it只替换成了ja
//http --> haap 逐字符进行对应位置的替换,这样不符合我们的初衷
echo strtr($str, 'it', '');
//output: http://flyer0126.iteye.com/ 没有替换
echo strtr($str, 'it', ' ');
//output: http://flyer0126. teye.com/ 可以替换
/**
* 函数 strtr 的 from->to方式 总结一下:
* 1. 区分大小写;
* 2. form与to长度不等时,多余字符将被忽略,不可以少换多,也不可以多换少;
* 3. 逐字符进行对应位置替换;
* 4. 不可被替换为空,可以替换为空格。
*/
// 相比较而言,后一种方式显而更合适
$replace_pairs = array(
'http://'=>'',
'it' => 'java'
);
echo strtr($str, $replace_pairs);
//output: flyer0126.javaeye.com/ 替换成功,符合替换初衷
/**
* 2. 函数 str_replace
* mixed str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] )
*/
echo str_replace('it', 'java', $str);
//output: http://flyer0126.javaeye.com/
echo str_replace(array('http', ':', '//', '/'), '', $str);
//output: flyer0126.iteye.com
echo str_replace(array('http', 'it', '/'), array('https', 'java', ''), $str);
//output: https:flyer0126.javaeye.com