<?php
$a = 'абвгдежзийклмноп';
$b = strpos ($a,'о');
echo $b;
?>
Вопрос: почему у меня выводит на букву о значение 28, а не 14 в русском алфавите, но тем не менее 14 в английском?
Перефразированный вопрос: Почему значение в русском алфавите удваиваются?
Спустя 3 минуты, 51 секунда (17.05.2011 - 21:29) vasa_c написал(а):
потому что, видать, на один символ в русском алфавите приходится два байта.
Спустя 5 минут, 42 секунды (17.05.2011 - 21:35) alex12060 написал(а):
UTF-8 ?
Спустя 26 минут, 47 секунд (17.05.2011 - 22:02) Basili4 написал(а):
Бэндер
Пользуй mb_strpos и забудь про strpos и ей подобные. все только через mb_
Пользуй mb_strpos и забудь про strpos и ей подобные. все только через mb_
Спустя 36 минут, 12 секунд (17.05.2011 - 22:38) Guest написал(а):
vasa_c но у одного парня на денвере это работает. В моём же случае получается правильно только если писать так: echo $b/2;
alex12060 первое что делаю: ANSI меняю в блокноте на UTF-8 для новых файлов php. Дальше уже кодирую.
Basili4 mb_strpos работает так же.
Может есть файл в котором как в php.ini или httpd.conf можно сменить настройки?
Apache 2.2.17 и PHP 5.3.5...
alex12060 первое что делаю: ANSI меняю в блокноте на UTF-8 для новых файлов php. Дальше уже кодирую.
Basili4 mb_strpos работает так же.
Может есть файл в котором как в php.ini или httpd.conf можно сменить настройки?
Apache 2.2.17 и PHP 5.3.5...
Спустя 10 часов, 13 минут, 37 секунд (18.05.2011 - 08:51) linker написал(а):
mb_strpos($str, 'о', 'UTF-8');тоже 28 выдает?
Спустя 45 минут, 36 секунд (18.05.2011 - 09:37) Guest написал(а):
Цитата (linker @ 18.05.2011 - 05:51) |
mb_strpos($str, 'о', 'UTF-8');тоже 28 выдает? |
mb_strpos() expects parameter 3 to be long, string given
и дальше пишет 0 будто не UTF-8 вовсе?
Спустя 28 минут, 22 секунды (18.05.2011 - 10:05) Michael написал(а):
mb_strpos($str, 'о', 0, 'UTF-8');
Спустя 8 минут, 22 секунды (18.05.2011 - 10:14) Guest написал(а):
Цитата (Michael @ 18.05.2011 - 07:05) |
mb_strpos($str, 'о', 0, 'UTF-8'); |
Заработало!) В mb_strpos($str, 'о', 0, 'UTF-8'); $str - это строка букв, о - буква, UTF-8 - мы кодируем строку в UTF-8, а 0 не совсем понятно, допускает значение нуля (которое выводится) или как?
Спустя 7 минут, 8 секунд (18.05.2011 - 10:21) Michael написал(а):
Учись пользоваться хелпом.
http://php.net/manual/ru/function.mb-strpos.php
http://php.net/manual/ru/function.mb-strpos.php
Спустя 50 минут, 30 секунд (18.05.2011 - 11:11) linker написал(а):
Спасибо, что поправили мну.
Спустя 22 минуты, 29 секунд (18.05.2011 - 11:34) Guest написал(а):
Цитата (Michael @ 18.05.2011 - 07:21) |
Учись пользоваться хелпом. http://php.net/manual/ru/function.mb-strpos.php |
The search offset. If it is not specified, 0 is used. If needle is not found, it returns FALSE.
Перефразирую вопрос: если я правильно понял, 0 мы задаём как начало (указываем что первая буква равна 0) или ноль это FALSE (но во втором случае зачем указываем ноль)? Странно что при UTF-8 запрашивает, а без него не нужно..
linker Да, спасибо большое)!
Спустя 8 минут, 36 секунд (18.05.2011 - 11:42) Michael написал(а):
offset - отступ откуда искать. Например ты хочешь поиск сделать с 10-го символа.
Указывать надо потому что тебе надо указать кодировку, а она ожидается 4-ым параметром.
Указывать надо потому что тебе надо указать кодировку, а она ожидается 4-ым параметром.
Спустя 7 минут, 26 секунд (18.05.2011 - 11:50) Guest написал(а):
Цитата (Michael @ 18.05.2011 - 08:42) |
offset - отступ откуда искать. Например ты хочешь поиск сделать с 10-го символа. Указывать надо потому что тебе надо указать кодировку, а она ожидается 4-ым параметром. |
Спасибо, теперь понял!