こんにちは。大化社員のにっしーです。
今回は、よく忘れがちで何回も検索してしまう
よく使うPHPの関数をまとめてみました。
文字列を数値に変換する
intvalを使用する
文字列を整数値に変換するためにはintval
関数を使用します。
例えば、以下のようなコードで使用することができます。
$str = "123"; $int = intval($str); echo $int;
この場合、文字列の「123」が整数の「123」に変換され、変数$intに代入されます。
floatvalを使用する
文字列をfloatに変換するためにはfloatval
関数を使用します。
例えば、以下のようなコードで使用することができます。
$str = "123"; $float = floatval($str); echo $float;
この場合、文字列の「123」がfloatの「123」に変換され、変数$floatに代入されます。
数値を文字列に変換する
strvalを使用する
数値を文字列に変換するためにはstrval
関数を使用します。
例えば、以下のようなコードで使用することができます。
$num = 10; $str = strval($num); echo $str;
この場合、数値の「10」が文字列の「10」に変換され、変数$strに代入されます。
文字列(数列)を日付に変換する
strtotimeを使用する
文字列(数列)を日付に変換するためにはstrtotime()
関数を使用します。
例えば、以下のようなコードで使用することができます。
$time_value = '201703220134'; echo date('Y年m月d日 H:i',strtotime($time_value));
strtotime() 関数は、英文形式の日時をUNIXタイムスタンプに変換することができます。
変換した値は date にセットして次のように表示します。
2017年03月22日 01:34
年月日をドット区切りにする場合は 'Y年m月d日 H:i' を 'Y.m.d H:i' のように編集してください。
文字列の検索をする
strposを使用する
strpos
は検索対象の文字列に検索する文字列が何文字目に存在するかを戻り値として返します。
検索した文字列が見つからなかった場合はFALSEを返します。
echo strpos('test@domain.com', '@'); // 4
結果は「4」が出力されます。0から数えられるため、"@"が5文字目にあるということが確認できます。
strstrを使用する
strstr
はマッチした文字列より後ろの文字列を戻り値として返します。
検索した文字列が見つからなかった場合はFALSEを返します。
echo strstr('test@domain.com', '@'); // @domain.com
また、"@"より前の部分を表示したい場合は、以下のように第3引数にTRUEを渡します。
echo strstr('test@domain.com', '@', TRUE); // test
preg_match()を使用する
preg_match
は正規表現による検索を行います。
検索対象文字列から正規表現にあてはまる文字列が存在するかチェックします。
戻り値はマッチした文字列がある場合は「1」、ない場合は「0」を返します。
第3引数の配列には、正規表現にマッチした文字列が格納されます。第3引数以降は省略することができます。
if ( preg_match('/[^@]+$/', 'name@example.com', $matches) ) {
echo $matches[0]; // example.com
}
実行結果は、@より後ろの文字が格納されるため、「example.com」と表示されます。
文字列を分割する
explodeを使用する
explode
は文字列を区切り文字で分割します。
explode関数での文字列分割の指定には、文字列を使います。
$fruits = 'apple orange lemon grape'; $result = explode(' ', $fruits); var_dump($result);
これを実行すると下記のように表示されます。
array(4) { [0]=> string(5) "apple" [1]=> string(6) "orange" [2]=> string(5) "lemon" [3]=> string(5) "grape" }
str_splitを使用する
str_split
は文字列を指定した文字数で分割します。
例えば、下記のように使います。
$fruits = 'apple orange banana'; $result = str_split($fruits, 5); var_dump($result);
これを実行すると下記のように表示されます。
array(4) { [0]=> string(5) "apple" [1]=> string(5) " oran" [2]=> string(5) "ge ba" [3]=> string(4) "nana" }
それぞれ、配列に5文字ずつ入っていますが、文字数が足りずに最後は4文字になっています。
str_split関数では、マルチバイト文字(日本語など)は使うことができません。
日本語を指定文字数で分割したい場合には、次項で紹介するmb_str_split関数を使います。
mb_str_splitを使用する
mb_str_split
はstr_split関数のマルチバイト対応バージョンです。
日本語もこちらの関数を使うことで、文字数を指定して分割できます。
$fruits = 'りんご オレンジ バナナ'; $result = mb_str_split($fruits, 3); var_dump($result);
var_dumpで確認すると、下記のように文字化けせずに分割されていることが確認できました。
array(4) { [0]=> string(9) "りんご" [1]=> string(7) " オレ" [2]=> string(7) "ンジ " [3]=> string(9) "バナナ" }
それぞれ、配列に5文字ずつ入っていますが、文字数が足りずに最後は4文字になっています。
今回のPHPの忘れがちな関数備忘録は以上になります。
読んでくださってありがとうございます。
参考になれば幸いです。
【参考・引用元のURL】
PHPで数値から文字列、文字列から数値の変換をしてみる。 | ちょっと便利なてっちーノート
PHP 文字列(数列)を日付に変換する方法 - by Takumi Hirashima
PHPで文字列を検索をする:strpos, strstr, preg_match | UX MILK
PHPで文字列を分割する5つの関数!(explodeなど) | コードライク