str_replace()関数は、指定した文字列に含まれる文字列を置換します。
str_replace(pattern,replacement,string)
str_replace (検索文字, 置換後の文字列, 元の文字列)
<?php
echo str_replace( "山田", "佐藤", "私は山田一郎です。" );
?>
私は佐藤一郎です。
上記のスクリプトstr_replace("山田","佐藤","私は山田一郎です。");は「山田」を「佐藤」に置換します。すなわち「私は山田一郎です。」が「私は佐藤一郎です。」と置換されます。
マルチバイト関数であるmb_strlen()関数を使用することにより、日本語の文字列でも長さを取得することが可能になります。
mb_strlen(string)
<?php
$str1 = strlen( "日本語文字123" );
echo "strlen = " . "$str1<br />n";
$str2 = mb_strlen( "日本語文字123", 'SJIS' );
echo "mb_strlen = " . "$str2n";
?>
strlen = 13 mb_strlen = 8
上記スクリプトの、mb_strlen()関数を使用した場合の文字列の取得結果は8となっています。これはmb_strlen()関数により、マルチバイト文字である「日本語文字」が 一つの文字として認識されています。このとき、第二引数でSJISとしていますが、これは正確にエンコーディングを指定するために記述しています。これを省略した場合、内部エンコーディングが優先され、実行結果が変わってくる場合があります。
mb_convert_kana(string_str,string_option[mixd_encoding])
mb_convert_kana()関数は、「かな」の文字列を指定した文字列に変換することができます。
<?php
$str = mb_convert_kana( "あいうえお", "C", 'SJIS' );
echo "$str";
?>
アイウエオ
「mb_convert_kana("あいうえお","C",'SJIS');」の「C」は「全角かな」を「全角カナ」に変換する意味があります。「'SJIS'」はmb_strlenの時と同様に指定しておきます。以上から出力結果は「アイウエオ」となります。
| オプション | 機能 |
|---|---|
| r | 「全角」英字を「半角」に変換 |
| R | 「半角」英字を「全角」に変換 |
| n | 「全角」数字を「半角」に変換 |
| N | 「半角」数字を「全角」に変換 |
| a | 「全角」英数字を「半角」に変換 |
| A | 「半角」英数字を「全角」に変換 |
| s | 「全角」スペースを「半角」に変換 |
| S | 「半角」スペースを「全角」に変換 |
| k | 「全角かたかな」を「半角かたかな」に変換 |
| K | 「半角かたかな」を「全角かたかな」に変換 |
| h | 「全角ひらかな」を「半角かたかな」に変換 |
| H | 「半角かたかな」を「全角ひらかな」に変換 |
| c | 「全角かたかな」を「全角ひらかな」に変換 |
| C | 「全角ひらかな」を「全角かたかな」に変換 |
| V | 濁点が付いている文字を一文字に変換、"K","H"と同時に使用。 |
使用する場合は、小文字と大文字の違いに注意しましょう。
| 関数 | 機能 |
|---|---|
| mb_convert_kana | カナを変換する。 |
| mb_ereg_replace | マルチバイト文字列に正規表現による置換処理を行う。 |
| mb_ereg | マルチバイト文字列に正規表現マッチを行う。 |
| mb_eregi_replace | マルチバイト文字列に大文字、小文字の区別をせず、正規表現による置換処理を行う。 |
| mb_eregi | マルチバイト文字列に大文字、小文字の区別をしない、正規表現マッチを行う。 |
| mb_split | マルチバイト文字列を正規表現により分割する。 |
| mb_strcut | 文字列の一部を取得する。 |
| mb_strlen | 文字列の長さを取得する。 |
| mb_strpos | 文字列の中に指定した文字列が最初に出現する場所を探す。 |
| mb_strrpos | 文字列の中に指定した文字列が最後に出現する場所を見つける。 |
| mb_strtolower | 文字列を小文字に変換する。 |
| mb_strtoupper | 文字列を大文字にする。 |
| mb_substr | 文字列の一部を取得する。 |