PHPのstrtr()関数を使用し文字列内の特定の文字を変換してみます。
strtr()関数は、文字列内の特定の文字を変換することができます。
■基本的な構文
strtr(string,from,to)
もしくは、
strtr(string,array)
stringは、変換するために必要な文字列を指定します。
fromは、文字列内で変更する文字を指定します。
toは、文字をどのような文字に変換するかを指定します。
※なお、fromとtoの引数,パラメータの長さが異なる場合は、両方とも短い方の長さに整形される。
arrayは、変換するために必要な配列を指定します。
■環境
・Windows10
・XAMPP 8.0.6
・PHP Version 8.0.6
■strtr()関数を使用し文字列内の特定の文字を変換する
では、PHPのstrtr()関数を使用し文字列内の特定の文字を変換するスクリプトを書いていきます。
■コード
<html lang="ja">
<head>
<title>strtr()関数を使用し文字列内の特定の文字を変換する</title>
</head>
<body>
<?php
echo strtr("Hello World","ello","oooo");
echo "<br>";
echo strtr("明日は、遠足","明日","今日");
?>
</body>
</html>
文字列内の特定の文字を変換するために、str_repeat()関数を使用します。str_repeat()関数の括弧内には、第1の引数,パラメーターとして文字列を渡します。第2の引数,パラメーターでは、文字列内で変換する文字を渡します。第3の引数,パラメーターでは、どのような文字に変換するかを指定し渡します。これで渡された情報を元に、文字列内の特定の文字が、指定した文字に変換されます。
変換後、変換された文字を含む文字列が返されますので、この文字列をecho文で出力します。
■実行
では、このスクリプトを「convert_specific_char_str.php」という名前で保存し、実行させてみます。
実行させてみると、str_repeat()関数を使用したことで、第1の引数,パラメーターとして渡した文字列内の文字が変換され、echo文で出力させることができました。出力された文字列を確認すると、「ello」を「ooo」と変換し「Hello」が「Hoooo」となっていることが確認できました。さらに「World」も「Worod」となっており、対象が1文字であっても変換されることが確認できました。
日本語の文字列も確認しましたが、文字が変換され、「明日」が「滊日」となっていることが確認できました。日本語の文字列で変換する場合は、str_repeat()関数を使用しない方が良さそうです。
コメント