Вот есть припусти такой код.
$str = 'Это строка';
echo $str[1];
Выведется какае-то ересь.Подскажите пожалуйста как сделать чтобы выводило нормальные символы.
СТРОКА ЭТО НЕ МАССИВ. Нельзя просто так взять и обратиться к отдельному символу строки.
Используйте функции explode или str_split
Например:
$str = 'hello';
$char_array = explode('', $str);
print $char_array[1]; //e
echo mb_substr($string, 0, 1);
В PHP 5.5 такая конструкция посимвольного вывода $str[1] станет возможной.
А пока,
$str = 'abc de';
$i = 0;
do {
echo $str{$i} , '<br/>';
++$i;
} while (isset($str{$i}));
Возможны проблемы с выводом кириллических символов, как, впрочем, и с использованием str_split.
Так что, вариант, который предложил @KryDos выглядит предпочтительнее.
$str = 'hello';
$char_array = explode('', $str);
print $char_array[1]; //e
Не понимаю, как можно использовать это, когда с помощью explode можно разбить строку по словам на массив, но не слово по буквам. Разделитель должен быть в любом случае, хотя бы пробел, но он ни в коем случае не должен быть пустым.
Попробуйте так:
$str = 'Это строка';
echo mb_substr($str, 0, 1, 'UTF-8');
// Получение первого символа строки
$str = 'This is a test.';
$first = $str[0];
// Получение третьего символа строки
$third = $str[2];
С поддержкой кириллицы:
$arChar = preg_split('/(?<!^)(?!$)/u', $string);
print_r($arChar);
Сборка персонального компьютера от Artline: умный выбор для современных пользователей