phpで文字列が数字かどうかを判別するctype_digit

プロモーションが含まれています

phpで文字列が数字かどうかを判別するctype_digit

phpでcsvを書き出すときに文字列が数字かどうかを判別するctype_digitの使い方。csvをExcelで開いてしまう子たちのためにE+の表示の解説とmb_strlenの使い方も。

php関連記事

関連記事をもっとみる

ctype_digitの使い方

php

ctype_digit(文字列)

ctype_digitは引数の文字列に数字のみかどうかを判別します。
数字のみならTRUE、数字以外が含まれる場合はFALSEを返します。

mb_strlenの使い方

php

strlen(文字列)

mb_strlenは引数の文字列の文字数を取得します。
半角1文字も、全角1文字も1でカウントします。

if文で分岐してみる

php

if (ctype_digit($name) && mb_strlen($name) > 11) {
    $name = "'" . $name;
}

Excelはセルの内容が12桁以上の数字のみである場合、例えば「5050925922821」と入力されていると、セルの表示が「5.05093E+12」のように変わってしまいます。
それを防ぐには文字列だよと教えてあげればいいので数字の先頭に「’」シングルコーテーションを入れます。

ctype_digitで数字のみか、mb_strlen12桁以上かを調べて、
どちらも満たす場合には文字列に「’」シングルコーテーションを付けます。

そうすればExcelで開いても問題ありません。

コメント

タイトルとURLをコピーしました