2010-09-04 20 views
5

PHP'de bir UTF-8 dizesinin uzunluğunu hesaplarken, mb-strlen() kullanın. Örneğinmb_strlen() yeterli mi?

: metin alanları herhangi bir dil (multilanguage) kabul edebilir gibi

if (mb_strlen($name, 'UTF-8') < 3) { 
    $error .= 'Name is required. Minimum of 3 characters required'; 
} 

, PHP doğru mutltilanguage UTF-8 karakterleri sayar emin olmak istiyorum.

Bu yeterli midir yoksa başka yöntemler kullanmam gerekiyor mu? PHP'nin bir nedenden ötürü yanlış anlayabileceğinden endişeleniyorum ya da belki de sadece şüpheci davranıyorum, ama PHP'nin yanlış anlaması nedeniyle insanların önemli bir doğrulama işlemini geçmesini istemiyorum.

cevap

18

Doğru

if (mb_strlen($name, 'UTF-8') < 3) is sufficient enough 

emin olun başlık da nedense

strlen(utf8_decode($string)) 

UTF-8 to Code Point Array Converter in PHP

için alternatif kontrol edebilirsiniz

HTTP-header (Content-Type: text/html; charset=UTF-8) 

doğrudur JapanPro en cevap ek olarak

+0

Teşekkür JapanPro. HTTP başlığım iyi, teşekkürler. Bağlantıyı kontrol edecek. Yani mb_strlen() güvenilir olabilir, o zaman benim http üstbilgisi yukarıda söylediğin gibi? Teşekkürler! – PHPLOVER

1

:
HTML'iniz olabilir: yerine örtük bir başlık beyanının

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 

:

HTTP-header (Content-Type: text/html; charset=UTF-8) 
İlgili konular