PHP 文字列を置換する
文字列をstr_replace関数とstrtr関数を使って置換する
<?php
$moji = 'Hello! JUGEM Blog';
//str_replace関数で置換
$moji2 = str_replace('Hello', 'Welcome', $moji);
//strtr関数で置換
$moji3 = strtr($moji, 'Hello', 'Welcome');
//出力
echo 'str_replace -> ' . $moji2 . '<br />';
echo 'strtr -> ' . $moji3 . '<br />';
?>
「出力結果」
str_replace -> Welcome! JUGEM Blog
strtr -> Welcome! JUGEM Bcog
str_replace ( [検索文字列], [置換文字列], [対象文字列] ) と指定する。
strtr ( [対象文字列], [検索文字列], [置換文字列] ) と指定する。
文字列を配列を使ってまとめて置換する
<?php
$moji = 'Linux, Apache, MySQL, PHP';
//str_replace関数で使う配列
$search = array('Linux', 'Apache', 'MySQL', 'PHP');
$replace = array('Windows', 'IIS', 'SQL Server', 'ASP');
//strtr関数で使う連想配列
$replace_array = array(
'Linux' => 'Windows',
'Apache' => 'IIS',
'PHP' => 'ASP',
'MySQL' => 'SQL Server'
);
//置換する
$moji2 = str_replace($search, $replace, $moji);
$moji3 = strtr($moji, $replace_array);
//出力
echo 'str_replace -> ' . $moji2 . '<br />';
echo 'strtr -> ' . $moji3 . '<br />';
?>
「出力結果」
str_replace -> Windows, IIS, SQL Server, ASP
strtr -> Windows, IIS, SQL Server, ASP
文字列を配列を使ってまとめて置換する(置換された文字を再度検索対象にする)
<?php
$moji = 'Linux, Apache, MySQL, PHP';
//"SQL Server"に置換された後、それをさらに"PostgreSQL"に置換しようとする
//str_replace関数で使う配列
$search = array('Linux', 'Apache', 'MySQL', 'PHP', 'SQL Server');
$replace = array('Windows', 'IIS', 'SQL Server', 'ASP', 'PostgreSQL');
//strtr関数で使う連想配列
$replace_array = array(
'Linux' => 'Windows',
'Apache' => 'IIS',
'PHP' => 'ASP',
'MySQL' => 'SQL Server',
'SQL Server' => 'PostgreSQL'
);
//置換する
$moji2 = str_replace($search, $replace, $moji);
$moji3 = strtr($moji, $replace_array);
//出力
echo 'str_replace -> ' . $moji2 . '<br />';
echo 'strtr -> ' . $moji3 . '<br />';
?>
「出力結果」
str_replace -> Windows, IIS, PostgreSQL, ASP
strtr -> Windows, IIS, SQL Server, ASP
str_replace関数は置換後の文字も検索対象となり置換されるが、strtr関数は置換後の文字は検索対象にならない。