- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
В 2023 году 36,9% всех DDoS-атак пришлось на сферу финансов
А 24,9% – на сегмент электронной коммерции
Оксана Мамчуева
Переиграть и победить: как анализировать конкурентов для продвижения сайта
С помощью Ahrefs
Александр Шестаков
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Можно еще для локализации места ошибки проверить, а не попадает ли в функцию маркировки текста строка поиска с уже обрезанным первым символом ?
Может в приведенном примере уже здесь вместо ожидаемого "иван" имеется на самом деле "ван" ?
Для тестирования этого можно кроме маркировки найденного текста вывести еще и саму строку поиска, например так:
function markText ($t, $q) {
return preg_replace ("~($q)~iu", "<b style=\"color: #990000\">\\1--$q--</b>", $t);
}
Строка поиска при таком выводе будет отделена от другого текста двумя дефисами.
Можно еще для локализации места ошибки проверить, а не попадает ли в функцию маркировки текста строка поиска с уже обрезанным первым символом ?
Может в приведенном примере уже здесь вместо ожидаемого "иван" имеется на самом деле "ван" ?
Для тестирования этого можно кроме маркировки найденного текста вывести еще и саму строку поиска, например так:
function markText ($t, $q) {
return preg_replace ("~($q)~iu", "<b style=\"color: #990000\">\\1--$q--</b>", $t);
}
Строка поиска при таком выводе будет отделена от другого текста двумя дефисами.
Нету там отдельного "ван", оно находит нашего Ивана но выделяет только часть его имени "ван"
... ru_RU.utf8
вы имеет ввиду что тут:
setlocale (LC_ALL, 'ru_RU.utf-8');
был пропущен дефис? Я его добавил но бестолку:(
---------- Добавлено 01.03.2013 в 23:31 ----------
Почему не работает?
Ошибки появляются, или что?
Попробуйте прописать одну из следующих строк перед функцией markText:
setlocale(LC_ALL,"ru_RU.cp1251");
или
setlocale(LC_ALL,"ru_RU.utf-8");
Какая кодировка на сайте? Если ЮТФ-8 - попробуйте сначала конвертить строку в ВИН-1251, пропускать через preg_replace, а потом назад в ЮТФ-8.
Вот тут проблема и решилась!
Поставил setlocale(LC_ALL,"ru_RU.cp1251 вместо utf и начало искать! Ура!) Всем спасибо ребята!
Вообщем есть сайт (справочник) в нем реализован быстрый поиск по ФИО и т д, еще есть функция подсветки того что ищешь: ввел букву "Ив" и оно выдало список с подсветкой найденных букв в имени или фамилии отчеству и т д. все это нормально работает на мастерхосте!
Перенесли проект к клиенту на выделенный сервер и там не работает подсветка у заглавных букв те :
Если ввести "иван" то подсвечивает у них только "ван" из фамилии "Иванов"
Что не включено в пхп? голову уже третий день ломаем! Сама функция с ключом:
Хм, может не совсем понял задание, но не проще тогда убрать регулярку вообще?
заменить на
Хм, может не совсем понял задание, но не проще тогда убрать регулярку вообще?
заменить на
В таком случае даже на мастерхосте выделение заглавных букв пропадает:))
В таком случае даже на мастерхосте выделение заглавных букв пропадает:))
Правильно :)
Полная функция будет выглядеть примерно так:
'UTF-8' - меняем на нужную кодировку :)
Поставил setlocale(LC_ALL,"ru_RU.cp1251 вместо utf и начало искать! Ура!) Всем спасибо ребята!
Есть еще побайтовый перебор, который будет работать при любом раскладе(не встречал нерабочих случаев... наверное потому что я его юзал тока 1 раз);)
Правильно :)
Полная функция будет выглядеть примерно так:
'UTF-8' - меняем на нужную кодировку :)
Да вот так работает! Кстати как сюда захерачить:
Вот ищем "Иван" он нашелся нажали пробел и чтоб четко был только иван без всяких результатов "Иванов Иванова и т д ?
Какая связь между "Иван_" и "Иванов_Иванова"?
Если так ищет - смотрите логику поиска у Вашего скрипта.