PHP: iconv_strlen - Manual

downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

iconv_strpos iconv_set_encoding

Last updated: Fri, 26 Jan 2007

view this page in

# iconv_strlen

(PHP 5)

iconv_strlen -- Возвращает количество символов в строке

## Описание

int iconv_strlen ( string str [, string charset] )

Возвращает количество символов в `str`.

В отличие от strlen(), iconv_strlen() учитывает кодировку строки (например, юникод может быть и двух-, и четырёхбайтным).

Если параметр `charset` опущен, предполагается, что кодировка строки `str` равна iconv.internal_charset.

См. также strlen() и mb_strlen().

add a note User Contributed Notes
iconv_strlen
hfuecks @ nospam org
24-Feb-2006 04:58
`If iconv_strlen is passed a UTF-8 string containing badly formed sequences, it will return FALSE. This is in contrast to mb_strlen of the behaviour of utf8_decode, which strip out any bad sequences;
<?php
# UTF-8 string containing bad sequence: \xe9
$str = "I�t�rn�ti�n\xe9�liz�ti�n";
print "mb_strlen: ".mb_strlen($str,'UTF-8')."\n";
print "strlen/utf8_decode: ".strlen(utf8_decode($str))."\n";
print "iconv_strlen: ".iconv_strlen($str,'UTF-8')."\n";
?>
Displays;
mb_strlen: 20
strlen/utf8_decode: 20
iconv_strlen:
(PHP 5.0.5)
As such it is being "stricter" than mb_strlen and it may mean you need to check for invalid sequences first. A quick way to check is to exploit the behaviour of the PCRE extension (see notes on pattern modifiers);
<?php
if (preg_match('/^.{1}/us',$str,$ar) != 1) {
die("string contains invalid UTF-8");
}
?>
A slower but stricter check (regex) can be found at: http://www.w3.org/International/questions/qa-forms-utf-8
Similiar applies to iconv_substr, iconv_strpos and iconv_strrpos`
add a note
iconv_strpos iconv_set_encoding

Last updated: Fri, 26 Jan 2007
show source | credits | stats | sitemap | contact | advertising | mirror sites
Copyright © 2001-2007 The PHP Group
All rights reserved.
This mirror generously provided by: Yahoo! Inc.
Last updated: Sat Mar 10 09:32:46 2007 PST