Ext JSやRapid Driveなど
システム開発の技術情報をご紹介。

お問い合わせ 資料請求 無料見積り

お電話でお気軽にお問い合わせくださいTel 03-6805-2904 営業時間 [平日]AM 9:30 - PM 6:30

文字列操作

文字列操作について

文字列を置換する

文字列を置換する

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文字列の一部を取得する。