戻る

練習問題

「PHP:Hypertext Preprocessor」の文字を以下のよう置換し、JavaScriptとPHPで表示しなさい。

PHPでは、strtr()関数とstr_replace()関数を使うこと。

PHP:Hy*ertext Pre*rocessor
PHP:Hy*ertext Pre*rocessor

PHP:Hy*ertext Pre*rocessor
PHP:Hy***ertext Pre***rocessor

*H*:Hypertext *reprocessor
*:Hypertext Preprocessor


strtr()関数とstr_replace()関数は共に文字列を検索して、指定した文字列と一致する部分を別の文字と置換します。引数には「もとの文字列」「検索対象の文字列」「置換する文字列」を指定します。

strtr()関数とstr_replace()関数とでは引数の位置が違うほか、「検索する文字列の文字数」と「置換する文字列の文字数」が異なる場合の動作が異なります。

両者が同じ長さの場合
いずれの関数も結果は同じです。

検索する文字数より置換後の文字数の方が長い場合
strtr()関数では検索する文字数の長さ分だけが置換されます。str_replace()関数では置換する文字数分がすべて置き換わり、もとより長い文字列が返されます。
例えば、「strtr($data, "p", "***")」は「strtr($data, "p", "*")」として機能します。

検索する文字数より置換する文字数の方が短い場合
strtr()関数では置換する文字の長さ分だけが検索対象として置換が行われます。str_replace()関数では検索された文字列全体が置換され、もとより短い文字列が返されます。
例えば、「strtr($dta, "PHP", "*")」は「strtr($data, "P", "*")」として機能します。

inserted by FC2 system