- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

Как снизить ДРР до 4,38% и повысить продажи с помощью VK Рекламы
Для интернет-магазина инженерных систем
Мария Лосева

VK приобрела 70% в структуре компании-разработчика red_mad_robot
Которая участвовала в создании RuStore
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Вообщем есть сайт (справочник) в нем реализован быстрый поиск по ФИО и т д, еще есть функция подсветки того что ищешь: ввел букву "Ив" и оно выдало список с подсветкой найденных букв в имени или фамилии отчеству и т д. все это нормально работает на мастерхосте!
Перенесли проект к клиенту на выделенный сервер и там не работает подсветка у заглавных букв те :
Если ввести "иван" то подсвечивает у них только "ван" из фамилии "Иванов"
Что не включено в пхп? голову уже третий день ломаем! Сама функция с ключом:
return preg_replace ("~($q)~iu", "<b style=\"color: #990000\">\\1</b>", $t);
}
НЕ самый правильный вариант:
Какая версия ПХП была на старом хостинге и какая здесь?
Да вы гений! Задам тогда еще пару вопросов:
Как сделать приоритет при поиске? Имеется искать сначала по определенному полю, далее по другим...
код:
function markText ($t, $q) {
$q = iconv('utf-8', 'windows-1251', $q);//Если кодировка ЮТФ-8, иначе убрать
$q = ucfirst($q);
$q = iconv('windows-1251', 'utf-8', $q);//Если кодировка ЮТФ-8, иначе убрать
return preg_replace ("~($q)~iu", "<b style=\"color: #990000\">\\1</b>", $t);
}
$query = R('DJEM')->GetForeach();
$query->Path('<['main.users']._id>.$');
$query->Limit(20);
$queryParams = array();
$queryValues = array();
if (empty ($_REQUEST ['term'])) die ("Ничего не найдено");
if (!empty($_REQUEST['term'])) {
$queryStr = trim(strip_tags($_REQUEST['term']));
$queryStr = str_replace (array ('!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '[', ']', '{', '}', '_', '-', '=', '+', ':', ';', '<', '>', '"', "'", '?', '~', '|', '/', '\\'), '', $queryStr);
if ($queryStr == '') die ("Ничего не найдено");
$queryParams[] = '_name like "%?%"';
$queryParams[] = 'doljnost like "%?%"';
$queryValues[] = $queryStr;
$queryValues[] = $queryStr;
$queryPhone = preg_replace ('~\D~', '', $queryStr);
if (!empty($queryPhone)) {
$queryParams[] = 'phone like "%?%"';
$queryParams[] = 'dob1 like "%?%"';
$queryValues[] = $queryPhone;
$queryValues[] = $queryPhone;
}
}
if (count($queryParams)) {
$query->Where(join(' || ', $queryParams), $queryValues);
}
// if ($queryPhone == '') $queryPhone = "5843209284352348709857423048975";
{{$query->Where('(_name like "%?%") || (phone like "%?%") || (doljnost like "%?%") || (dob1 like "%?%") ', $queryStr, $queryPhone, $queryStr, $queryPhone);}}
{{$query->Where('_name like "%?%" || phone like "%?%" || doljnost like "%?%" || dob1 like "%?%" ', $queryStr, $queryPhone, $queryStr, $queryPhone);}}
if ($query -> size () != 0) {
echo "<ul>";
foreach ($query as $q)
echo '<li><a href="' . $q -> _url . '"><span>' . markText ($q->_name, $queryStr) . '</span></a>' . ($q->doljnost == '' ? '' : ', ' . markText ($q->doljnost, $queryStr)) . ($q->phone == '' ? '' : ', ' . markText (preg_replace ('/^(\d)\D*(\d)\D*(\d)\D*(\d)\D*(\d)\D*(\d)\D*(\d)\D*(\d)\D*(\d)\D*(\d)\D*(\d)\D*/','$1 ($2$3$4) $5$6$7-$8$9-$10$11', $q->phone), $queryStr)) . ($q->dob1 == '' ? '' : ', ' . markText (preg_replace ('/^(\d)\D*(\d)\D*(\d)\D*(\d)\D*/','$1$2-$3$4 ', preg_replace ('/^(\d)\D*(\d)\D*(\d)\D*/','$1-$2$3 ', $q->dob1)), $queryStr)) . "</li>";
echo "</ul>";
} else {
echo "<center>Не найдено ни одного сотрудника.</center>";
}
п.с. возможно вопрос будет глупым, так как не владею знаниями пхп....
---------- Добавлено 01.03.2013 в 16:55 ----------
НЕ самый правильный вариант:
Какая версия ПХП была на старом хостинге и какая здесь?
На старом PHP Version 5.2.17 (мастерхост)
Туда куда перенесли: PHP Version 5.2.8
---------- Добавлено 01.03.2013 в 17:03 ----------
Рано радовался, не работает оказывается:(
Почему не работает?
Ошибки появляются, или что?
Попробуйте прописать одну из следующих строк перед функцией markText:
setlocale(LC_ALL,"ru_RU.cp1251");
или
setlocale(LC_ALL,"ru_RU.utf-8");
Какая кодировка на сайте? Если ЮТФ-8 - попробуйте сначала конвертить строку в ВИН-1251, пропускать через preg_replace, а потом назад в ЮТФ-8.
Почему не работает?
Ошибки появляются, или что?
Попробуйте прописать одну из следующих строк перед функцией markText:
setlocale(LC_ALL,"ru_RU.cp1251");
или
setlocale(LC_ALL,"ru_RU.utf-8");
Это у меня стояло изначально, ошибок никаких нет, просто большие буквы не подсвечивает, я вот думал может какая то хрень отключена в пхп ?
почему ключ u не фурычит?
---------- Добавлено 01.03.2013 в 17:11 ----------
Какая кодировка на сайте? Если ЮТФ-8 - попробуйте сначала конвертить строку в ВИН-1251, пропускать через preg_replace, а потом назад в ЮТФ-8.
На сайте все в UTF-8
А что значит конвертировать?
если оно частично подсвечивает значит врятли в кодировке дело. тут какаето проблема именно с заглавными, с локалью покрутить можно. или из регулярки убрать u модификатор, может поможет, может он наоборот лишний =)
если оно частично подсвечивает значит врятли в кодировке дело. тут какаето проблема именно с заглавными, с локалью покрутить можно. или из регулярки убрать u модификатор, может поможет, может он наоборот лишний =)
Напишите что на что менять, попробую:)
я вот думал может какая то хрень отключена в пхп ?
Перенесли проект к клиенту на выделенный сервер
Скорее не в PHP
Если в шелле выполнить locale -a - что выдаст? Вот то, что выдаст (с UTF-8) и использовать в setlocale (до операций со строками). Если не выдаст - конфигурировать локали. В Debian-дистрибутивах dpkg reconfigure locales
Скорее не в PHP
Если в шелле выполнить locale -a - что выдаст? Вот то, что выдаст (с UTF-8) и использовать в setlocale (до операций со строками). Если не выдаст - конфигурировать локали. В Debian-дистрибутивах dpkg reconfigure locales
Выдало:
ru_RU
ru_RU.cp1251
ru_RU.koi8r
ru_RU.utf8
---------- Добавлено 01.03.2013 в 21:56 ----------
Если выполнить запрос show variables like 'char%'; на выделенном сервере:
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/
На мастрехосте:
| character_set_client | cp1251 |
| character_set_connection | cp1251 |
| character_set_database | cp1251 |
| character_set_filesystem | binary |
| character_set_results | cp1251 |
| character_set_server | cp1251 |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/share/mysql/charsets/ |
Это может как то повлиять?
Для начала сделайте как на мастерхосте(я не удивлюсь, если Вы до сих пор ждете ответа и еще сами не попробывали).
Перед работой с базой делайте запрос mysql_query("SET NAMES utf8")
Для начала сделайте как на мастерхосте(я не удивлюсь, если Вы до сих пор ждете ответа и еще сами не попробывали).
Перед работой с базой делайте запрос mysql_query("SET NAMES utf8")
В коде пхп вы имеете ввиду?
На обеих серверах же таблицы в utf... или это значения не имеет?
И куда вставить этот mysql_query("SET NAMES utf8") ?