zelenuy
22.02.2014 - 18:09
$str = "Вася";
$a = mb_strlen($str, 'utf-8');
echo $str."<br>";
echo $a."<br>";
for($i = 0; $i < $a; $i++)
echo $str{$i}." : ";
inpost
22.02.2014 - 18:28
zelenuyТак по символам обращаться нельзя, там идёт обращение к байту, а UTF-8 многобайтная кодировка, русская буква состоит из двух байт, к примеру.
_____________
Обучаю веб-программированию качественно и не дорого:
http://school-php.comФрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
zelenuy
22.02.2014 - 18:39
inpostТо есть, по символам в строке я не смогу пробежаться, обидно досадно
inpost
22.02.2014 - 18:41
zelenuyНикогда не вдавался в потребность, но первое, что приходит на ум - регулярка по 1 символу разбить строку.
_____________
Обучаю веб-программированию качественно и не дорого:
http://school-php.comФрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
zelenuy
22.02.2014 - 18:45
$str = "Вася";
$str = iconv("utf-8", "cp1251", $str);
$a = strlen($str);
echo $a."<br>";
for($i = 0; $i < $a; $i++)
echo iconv("cp1251", "utf-8", $str{$i})." : ";
О та :D тока накладно
zelenuy
22.02.2014 - 18:47
inpost
Да можно попробовать
inpost
22.02.2014 - 18:58
zelenuyТвой вариант тоже неплох.
_____________
Обучаю веб-программированию качественно и не дорого:
http://school-php.comФрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
zelenuy
22.02.2014 - 19:00
$str = "Вася";
preg_match_all('/(.{1})/iu', $str, $reg);
$c = count($reg[1]);
for($i=0; $i<$c; $i++){
echo $reg[1][$i].'<br>';
}
Не твой лучше, представь я бы еще сравнивал мне бы пришлось все перегонять из одной кодировки в другую а потом обратно)
Игорь_Vasinsky
22.02.2014 - 19:20
preg_split()
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Valick
22.02.2014 - 20:06
zelenuy, не можно, а нужно
<?php
function mb_str_split( $string ) {
return preg_split('/(?<!^)(?!$)/u', $string );
}
$string = '火车票';
$charlist = mb_str_split( $string );
print_r( $charlist );
?>
_____________
Стимулятор ~yoomoney - 41001303250491
killer8080
22.02.2014 - 21:23
mb_internal_encoding("UTF-8");
$str = "Вася";
$len = mb_strlen($str);
for ($i = 0; $i < $len; $i++)
echo mb_substr($str, $i, 1) . '<br />';