!!!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]."
\n"); } splitの第一引数に分解する場合の区切り文字、第二引数に 分解したい文字列を入れます。 上記の場合、 0 : item1 1 : item2 2 : 3 : test のように出力されます。コンマで分解されているのが分かります。