gormarket: Можно еще для локализации места ошибки проверить, а не попадает ли в функцию маркировки текста строка поиска с уже обрезанным первым символом ?
Может в приведенном примере уже здесь вместо ожидаемого "иван" имеется на самом деле "ван" ?
Для тестирования этого можно кроме маркировки найденного текста вывести еще и саму строку поиска, например так:
Милованов Ю.С: Для начала сделайте как на мастерхосте(я не удивлюсь, если Вы до сих пор ждете ответа и еще сами не попробывали).
Перед работой с базой делайте запрос mysql_query("SET NAMES utf8")
В коде пхп вы имеете ввиду?
На обеих серверах же таблицы в utf... или это значения не имеет?
И куда вставить этот mysql_query("SET NAMES utf8") ?
Вам в теме дали еще два рабочих варианта.
Так я же написал что этот вариант рабочий
RewriteEngine on
RewriteBase /
# собственно перенаправление
RewriteCond %{REQUEST_URI} index.s?html$
RewriteRule ^(.*/)index.s?html $1 [R=301,L]
но редиректит без www...
А должен был. Проверить mod_rewrite, правила закинуть в корневой .htaccess
Оказывается проблема была в том что я правило не в начале htaccess поставил....
Вот такое правило работает только для главной
RewriteEngine on
Options +FollowSymlinks
RewriteBase /
RewriteCond %{HTTP_HOST} ^site.ru(.*)
RewriteRule ^(.*)$ http://www.site.ru/$1 [R=301,L]
RewriteCond %{THE_REQUEST} ^(GET|HEAD)\ /index.shtml
RewriteRule .* / [R=301,L]
AddType "text/html; charset=UTF-8" .html .htm .shtml
А вот внутри каталогов нифига....
---------- Добавлено 05.03.2013 в 20:32 ----------
Масол, приведённый код, видимо, для корня сайта - т.е. для catalog/index.htm он не сработает. (да и там кой-чего лишнего).
Ruslan203, для подкаталогов - последние 2 строчки (и shtml, и html)
Вот это правило срабатывает как надо вроде бы, но почему то перенаправляет на без www.
Как его заставить чтоб редирект был на домен с www ?
DirectoryIndex index.shtml index.html index.php - что стоит в этой директиве?
Да там все стоит правильно, просто яндекс проиндексировал обе ссылки, а надо чтоб склеились...
Извиняюсь по поводу shtml или html, я собственно имел ввиду любой вид чтоб превращался в /
Вообщем ни один вариант не помог:(
Пример:
1. http://www.site.ru/catalog/index.shtml редиректилась сюда http://www.site.ru/catalog/
2. http://www.site.ru/index.shtml редиректилась сюда http://www.site.ru/
любой index.shtml вообщем убирался нахер)
Лучше поставить скрытое поле, которое заполнить может только бот, и нэйм ему указать какой нибудь "email"
Правильно :)
Полная функция будет выглядеть примерно так:
'UTF-8' - меняем на нужную кодировку :)
Да вот так работает! Кстати как сюда захерачить:
Вот ищем "Иван" он нашелся нажали пробел и чтоб четко был только иван без всяких результатов "Иванов Иванова и т д ?
Хм, может не совсем понял задание, но не проще тогда убрать регулярку вообще?
заменить на
В таком случае даже на мастерхосте выделение заглавных букв пропадает:))
вы имеет ввиду что тут:
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 и начало искать! Ура!) Всем спасибо ребята!
Можно еще для локализации места ошибки проверить, а не попадает ли в функцию маркировки текста строка поиска с уже обрезанным первым символом ?
Может в приведенном примере уже здесь вместо ожидаемого "иван" имеется на самом деле "ван" ?
Для тестирования этого можно кроме маркировки найденного текста вывести еще и саму строку поиска, например так:
function markText ($t, $q) {
return preg_replace ("~($q)~iu", "<b style=\"color: #990000\">\\1--$q--</b>", $t);
}
Строка поиска при таком выводе будет отделена от другого текста двумя дефисами.
Нету там отдельного "ван", оно находит нашего Ивана но выделяет только часть его имени "ван"
Для начала сделайте как на мастерхосте(я не удивлюсь, если Вы до сих пор ждете ответа и еще сами не попробывали).
Перед работой с базой делайте запрос mysql_query("SET NAMES utf8")
В коде пхп вы имеете ввиду?
На обеих серверах же таблицы в utf... или это значения не имеет?
И куда вставить этот mysql_query("SET NAMES utf8") ?