檢查長度以確保值符合資料庫欄位時,請注意使用正確的函式。
有三種可能的情況
1. 最可能的情況:資料庫欄位是 UTF-8 編碼,長度以 Unicode 字碼點定義(例如,UTF-8 資料庫的 mysql varchar(200))。
<?php
mb_strlen($value);
iconv_strlen($value);
mb_strlen($value, "UTF-8");
iconv_strlen($value, "UTF-8");
strlen(utf8_decode($value)); grapheme_strlen($value); ?>
2. 資料庫欄位的長度以位元組為單位定義(例如,Oracle 的 VARCHAR2(200 BYTE))
<?php
strlen($value);
mb_strlen($value, "8bit")
?>
3. 資料庫欄位使用其他字元集(UTF-16、ISO-8859-1 等),其長度以字元/程式碼點為單位定義。
找出所使用的字元集,並將其明確傳遞給長度函式。
<?php
mb_strlen($value, $charset);
iconv_strlen($value, $charset);
?>