ホームページ >バックエンド開発 >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');
//出力: http://flyer0126.iteye.com/ strtr は大文字と小文字を区別します
//from と to の長さが等しくない場合、余分な文字は無視されます
echo strtr($str , 'it', 'java');
//出力: haap://flyer0126.jaeye.com/
//iteye --> ja
//http --> に置き換えられるだけです; haap は対応する位置を 1 文字ずつ置き換えますが、これは本来の意図を満たしていません
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 の長さが等しくない場合、余分な文字は無視されます。 「less」を「more」に置き換えることはできません。または「more」を「less」に置き換えることはできません。
* 3. 対応する位置を 1 文字ずつ置き換えます。
* 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);
//出力:Flyer0126.iteye.com
echo str_replace(array('http', 'it ', '/') 、array('https', 'java', ''), $str);
//出力: https:flyer0126.javaeye.com