文字列処理_PHP
PHPでの文字列処理
文字列の連結
$str = "Hello"; $str2 = "World!!"; $str3 = $str.$str2;
文字列を連結する場合は「.」を使うことでつなげることができます。$str3は「HelloWorld!!」となります。
$str3 = "$str$str2";
でも連結できます。ただし、文字列内に変数を内包する場合はダブルクォーテーションでくくる必要があります。ダブルクォーテーション内には配列を指定することはできません。配列を文字列連結する場合は「.」を使用します。
$ar = array('Apple', 'Orange', 'Grape'); $str = "果物:".$ar[0];
文字列を数値に変換(intval)
$str = 1234; $a = intval($str) + 10;
結果は、$aが1244になります。
数値を文字列に変換(strval)
$a = 1234; $str = strval($a);
結果は、$strが'1234'になります。
文字列を浮動小数点の値に変換(floatval)
$str = '12.56'; $fVal = floatval($str);
結果は、$fValが12.56となります。
文字列末尾のスペース、\n、\r、\tをカット(chop)
$str = "hoehoe\n "; chop($str);
結果は、$strが'hoehoe'になります。改行コードを含む1行分の読み込みなどで利用できそうです。
文字列長の取得(strlen)
$str = '123あいう'; $len = strlen($str);
文字列のバイト数を取得します。2バイトコードは+2で加算されます。結果は、$lenが9となります。
文字列の置き換え(str_replace)
$str = 'ABCDEFGH'; $str2 = str_replace("CD", "cd", $str);
str_replaceの第一引数は置換対象の文字列、第二引数は置換後の文字列、第三引数は元の文字列です。結果は、$str2が'ABcdDEFH'となります。
文字列を英字小文字にする(strtolower)
$str = strtolower("HomePage");
結果は、$strが'homepage'となります。
文字列の取り出し(substr)
$str = substr("HomePage", 4, 4);
substrの第一引数は元の文字列、第二引数は取り出し開始位置、第三引数は取り出す文字数です。結果は、$strが'Page'となります。
文字列中の文字(列)位置を調査(strpos)
$pos = strpos("HomePage", "P");
第一引数で指定された文字列より、第二引数の文字列が存在する位置を調べます。結果は、$posが4となります。
対象文字列が存在しない場合を判定するには、「if(gettype($pos) == 'integer')」で変数タイプを調べるといいようです。もし、数値が入っている場合はgettypeは'integer'が返されます。カラの場合(対象文字列が存在しない場合)は、'boolean'になってました。
数値の桁数をそろえた文字列を取得する(str_pad)
日付などを表示する場合に、「2005/11/2」ではなく「2005/11/02」のように0で埋めて表示したい場合があります。このときに便利な関数が「str_pad」です。
例えば、「53」を最大4ケタの数値として「0053」として表示したい場合は、以下のように記述します。
$iVal = 53; $sVal = str_pad($iVal, 4, '0', STR_PAD_LEFT);
str_padの第一引数に数値、第二引数に最大ケタ数、第三引数にカラの場合に埋めたい文字、第四引数に埋める文字の配置位置(STR_PAD_LEFTで左を埋める)を指定します。
指定の文字で文字列を分解する(split)
CSVのような「,」で文字列を分解したいときは、「split」関数を使うと楽できます。
$str = "item1,item2,,test"; $ar = split(',', $str); $cou = count($ar); for($i = 0; $i < $cou; $i++) { print(strval($i)." : ".$ar[$i]."<br>\n"); }
splitの第一引数に分解する場合の区切り文字、第二引数に分解したい文字列を入れます。
上記の場合、
0 : item1 1 : item2 2 : 3 : test
のように出力されます。コンマで分解されているのが分かります。
Future's Laboratory 技術格納庫 2004-2013 Yutaka Yoshisaka.