20.08.2017, 15:22
|
Профессор
|
|
Регистрация: 04.12.2012
Сообщений: 3,791
|
|
Сообщение от Sonya
|
Нет, если этой буквы вообще нет в слове, то выводить "0".
|
$str='СлОво';
$num=mb_strpos(mb_strtolower($str),'о',0);
if($num)
echo 'Первая буква «о» встречается в строке «'.$str.'» символом №'.(1+$num);
else
echo 'Not found';
exit;
|
|
20.08.2017, 15:26
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Nexus,
mb_stripos mb_strtolower, смещение по умолчанию и так нулевое, а вот кодировку либо указывать, либо сразу ее определить для многобайтных строк, иначе могут быть и не предсказуемые результаты.
|
|
20.08.2017, 15:39
|
Профессор
|
|
Регистрация: 04.12.2012
Сообщений: 3,791
|
|
Сообщение от laimas
|
Nexus,
mb_stripos mb_strtolower, смещение по умолчанию и так нулевое, а вот кодировку либо указывать, либо сразу ее определить для многобайтных строк, иначе могут быть и не предсказуемые результаты.
|
Предпочитаю явно указать на игнорирование регистра, приведя все к lowercase. Буковку «i» можно и не заметить в названии «mb_stripos».
Про кодировку согласен, лучше указать.
Последний раз редактировалось Nexus, 20.08.2017 в 15:43.
|
|
20.08.2017, 15:40
|
Профессор
|
|
Регистрация: 07.07.2016
Сообщений: 281
|
|
Спасибо!
|
|
20.08.2017, 16:00
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от Nexus
|
Буковку «i» можно и не заметить в названии «mb_stripos».
|
Оригинально, что требуется постоянно читать имя функции? А как в случае с рег. выражением, модификатор i тоже проблемный?
|
|
20.08.2017, 16:07
|
Профессор
|
|
Регистрация: 04.12.2012
Сообщений: 3,791
|
|
Сообщение от laimas
|
Оригинально, что требуется постоянно читать имя функции? А как в случае с рег. выражением, модификатор i тоже проблемный?
|
Человек при чтении не всегда каждую букву рассматривает, обычно внимание обращается на начало и конец слова.
Модификаторы посередине регулярки не вставляются.
|
|
20.08.2017, 16:16
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от Nexus
|
Человек при чтении не всегда каждую букву рассматривает, обычно внимание обращается на начало и конец слова.
|
И что теперь не использовать массу функций? Просто нужно знать инструментарий языка, о наборе его функций и использовать то, что выгоднее, без всяких "человек лох, видит совсем не то".
|
|
20.08.2017, 18:03
|
Профессор
|
|
Регистрация: 04.12.2012
Сообщений: 3,791
|
|
Сообщение от laimas
|
И что теперь не использовать массу функций? Просто нужно знать инструментарий языка, о наборе его функций и использовать то, что выгоднее, без всяких "человек лох, видит совсем не то".
|
Я тебе ничего не запрещал и не писал, что какие-то конкретные функции использовать нельзя. Это ты мне пишешь, что нужно использовать не две функции, а одну.
Можно юзать оба способа, разницы никакой.
|
|
20.08.2017, 19:20
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от Nexus
|
тебе ничего не запрещал и не писал, что какие-то конкретные функции использовать нельзя.
|
Я тоже вроде бы как не обвинял в запрете, просто странная логика поясняющая предпочтения. Кстати, разница есть - дважды производится разбор одной строки.
|
|
|
|