phpでcsvを書き出すときに文字列が数字かどうかを判別するctype_digitの使い方。csvをExcelで開いてしまう子たちのためにE+の表示の解説とmb_strlenの使い方も。
php関連記事
phpで10進数と16進数、2進数、8進数の変換と0埋め表記
WordPressの条件分岐タグでページを判別する
PHPでpreg_splitの文字化けを回避しながらテキストを改行ごとに区切ってHTMLメールをつくる
WordPressテーマアップロード時に「辿ったリンクは期限が切れています。 もう一度お試しください。」と表示される
PHPで画像アップロード時に比率を保ったまま縮小する
phpで郵便番号を正規表現で3桁・ハイフン・4桁で出力するfunction
phpで電話番号のハイフンを正規表現で出力するfunction
【MySQL】無いならINSERT、あるならUPDATEする、ON DUPLICATE KEY UPDATE構文
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で開いても問題ありません。
コメント