[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: проблема с strpos
Serg007
В чем может заключаться проблема когда strpos не находит в тексте нужное слово.
strpos($ancor,$manch);

обе переменные в utf8, при чем слово, которое нужно найти есть в тексте 100%



Спустя 11 минут, 39 секунд (25.05.2009 - 15:21) waldicom написал(а):
А как ты узнаешь, что оно не найдено? Кусок кода приведи.
Проблема может быть тогда, если слово находится в начале строки. Или кодировка.

Спустя 15 минут, 5 секунд (25.05.2009 - 15:36) sergeiss написал(а):
Хэлп настоятельно рекомендует в данной ситуации использовать для сравнения тройной знак равно (===), потому как возвращаемая позиция подстроки нумеруется с нуля. И если искомая подстрока будет в самом начале, то strpos вернет ноль, который будет преобразован в false. Формальный результат - строка не найдена.

Спустя 13 секунд (25.05.2009 - 15:36) Serg007 написал(а):
изначально обе переменные в ютф 8, тоже не работает. Для удобства перекодирую в cp1251.
вот примерно такое у меня в цикле
PHP
$manch iconv("UTF-8""CP1251"$manch);
$arr_ancor =iconv("UTF-8""CP1251"strip_tags($arr_ancor));
echo 
"<hr>".strtolower($arr_ancor)." - <b>".strtolower($manch)."</b> - RESULT:";
echo 
strpos(strtolower($arr_ancor),strtolower($manch))."<hr>";

вот что получается:user posted image

Спустя 38 минут, 16 секунд (25.05.2009 - 16:15) twin написал(а):
В UTF-8 не работает не strpos() а strtolower().
Попробуй так:
PHP
...mb_strtolower($arr_ancor,"utf-8")...

Только библиотека должна mb быть установлена.

Спустя 50 минут, 52 секунды (25.05.2009 - 17:06) Serg007 написал(а):
не работает даже без нее

Спустя 2 часа, 3 минуты, 12 секунд (25.05.2009 - 19:09) twin написал(а):
Исходную переменную и желаемый результат в студию.

Спустя 1 час, 11 минут, 36 секунд (25.05.2009 - 20:20) kirik написал(а):
Так будет работать (если mb стоит):

PHP
mb_internal_encoding('UTF-8'); // устанавливаем кодировку для работы с мультибайтовыми (в кодировке UTF-8) символами

$manch = 'камеди клаб';
$arr_ancor = 'Тут кароч кусок текста с использованием слова кАмеди клаб.. так что вот так';

$manch = mb_strtolower($manch);
$arr_ancor = mb_strtolower($arr_ancor);

echo '<hr>'.$arr_ancor.' - <b>'.$manch.'</b> - RESULT:'.mb_strpos($arr_ancor, $manch).'<hr>';


зы. если не секрет, зачем нужно определять местоположение подстроки?

Спустя 16 часов, 14 минут, 34 секунды (26.05.2009 - 12:35) Serg007 написал(а):
Смотрю прямые включения в тайтлах страниц в поисковой выдаче по низкочастотным запросам, если это интересно. Для чего - определяем конкуренцию smile.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.