- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Как снизить ДРР до 4,38% и повысить продажи с помощью VK Рекламы
Для интернет-магазина инженерных систем
Мария Лосева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Когда-то (к сожалению контакты утеряны чтобы спросить).
мне человек делал поиск по сайту, он работает до сих пор прекрасно.
Сейчас делаю другой сайт, хотела туда этот же поиск по сайту вставить, пробую, а не работает. Что я не вижу и делаю теперь не так.
Подскажите мне чайнику :( что не так..
<form action="/search.php" method="post">
<font color="#883539"> <b>Поиск по сайту</b> </font>
<input type="text" name="q"><br /><input type="submit" value="Искать">
</form>
И соответственно в файле search.php:
<?
$d="./";
$dir=opendir($d);
if (isset($_POST['q'])) $search_string=strtolower(trim($_POST['q']));
else $search_string="";
$res1=array();
$count=0;
if (strlen($search_string))
{
while($dir&&$file=readdir($dir))
{
if (is_file($d.$file))
{
if (preg_match("/.html/",$file))
{
$data=strtolower(file_get_contents($d.$file));
// print "s";
if (preg_match_all("/\<\!\-\-таблица[\s\S]*?\<\/TABLE\>/i",$data,$out))
{
foreach($out[0] as $k=>$v)
{
if (@strstr($v,$search_string))
{
$v=str_replace($search_string,"<span style='background:#666666'>$search_string</span>",$v);
$count++;
$res1[$count]=$v;
}
}
}
}
}
}
}
print "По вашему запросу найдено $count результата(ов):<br>";
for ($i=1;$i<=$count;$i++)
{
print $res1[$i];
}
?>
А кодировка у сайтов одинаковая?
А кодировка у сайтов одинаковая?
Нет!!, тот сайт старый по сути заброшенный там еще Windows-1251
Сейчас конечно на UTF-8 делаю..
В этом проблема?
сайт search.php переведите в utf-8
и попробуйте:
if (@strstr($v,$search_string))
заменить на
if (@mb_strstr($v,$search_string,0,'UTF-8'))
---------- Добавлено 26.02.2019 в 15:25 ----------
$search_string=strtolower(trim($_POST['q']));
на
$search_string=mb_strtolower(trim($_POST['q']),'UTF-8');
---------- Добавлено 26.02.2019 в 15:25 ----------
$data=strtolower(file_get_contents($d.$file));
на
$data=mb_strtolower(file_get_contents($d.$file),'UTF-8');
сайт search.php переведите в utf-8
и попробуйте:
if (@strstr($v,$search_string))
заменить на
if (@mb_strstr($v,$search_string,0,'UTF-8'))
---------- Добавлено 26.02.2019 в 15:25 ----------
$search_string=strtolower(trim($_POST['q']));
на
$search_string=mb_strtolower(trim($_POST['q']),'UTF-8');
---------- Добавлено 26.02.2019 в 15:25 ----------
$data=strtolower(file_get_contents($d.$file));
на
$data=mb_strtolower(file_get_contents($d.$file),'UTF-8');
Все-равно По вашему запросу найдено 0 результата(ов): :(
Ну, тут два варианта остается.
Смотрите на регулярные выражения.
Либо у вас нет .html файлов (скрипт ищет их), либо в файлах нет выражения <!--таблица </TABLE>
Попробуйте заменить в
if (preg_match_all("/\<\!\-\-таблица[\s\S]*?\<\/TABLE\>/i",$data,$out))на
if (preg_match_all("/.*/i",$data,$out))нет выражения <!--таблица
Ну конечно! Спасибо!!!!!!!!!!!!!!!!!!!!!!!!!! Я так и знала, что упускаю какую-то самую простую мелочь.
Я не писала сейчас в коде комментарии...
Теперь добавила и все работает. Ура!!!!!!
Еще раз большое спасибо за помощь!