Поиск по сайту на другом сайте не работает, посмотрите код плиз

funkislota
На сайте с 12.05.2010
Offline
144
439

Когда-то (к сожалению контакты утеряны чтобы спросить).

мне человек делал поиск по сайту, он работает до сих пор прекрасно.

Сейчас делаю другой сайт, хотела туда этот же поиск по сайту вставить, пробую, а не работает. Что я не вижу и делаю теперь не так.

Подскажите мне чайнику :( что не так..

<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];

}

?>

LEOnidUKG
На сайте с 25.11.2006
Offline
1591
#1

А кодировка у сайтов одинаковая?

✅ Трастовых площадок под размещение статей и ссылок. Опыт 12 лет! ( https://searchengines.guru/ru/forum/675690 ) ⭐ Купить вечные трастовые ссылки для сайта ( https://getmanylinks.ru/?srh ) ⭐ Ускорение ваших сайтов (WP, Opencart и др.) + Настройка сервера ( https://searchengines.guru/ru/forum/997205 )
funkislota
На сайте с 12.05.2010
Offline
144
#2
LEOnidUKG:
А кодировка у сайтов одинаковая?

Нет!!, тот сайт старый по сути заброшенный там еще Windows-1251

Сейчас конечно на UTF-8 делаю..

В этом проблема?

LEOnidUKG
На сайте с 25.11.2006
Offline
1591
#3

сайт 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');

funkislota
На сайте с 12.05.2010
Offline
144
#4
LEOnidUKG:
сайт 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 результата(ов): :(

D
На сайте с 30.09.2018
Offline
8
#5

Ну, тут два варианта остается.

Смотрите на регулярные выражения.

Либо у вас нет .html файлов (скрипт ищет их), либо в файлах нет выражения <!--таблица </TABLE>

Попробуйте заменить в

if (preg_match_all("/\<\!\-\-таблица[\s\S]*?\<\/TABLE\>/i",$data,$out))

на

if (preg_match_all("/.*/i",$data,$out))
Сайт под ключ (https://devmastery.ru)
funkislota
На сайте с 12.05.2010
Offline
144
#6
devmastery:
нет выражения <!--таблица

Ну конечно! Спасибо!!!!!!!!!!!!!!!!!!!!!!!!!! Я так и знала, что упускаю какую-то самую простую мелочь.

Я не писала сейчас в коде комментарии...

Теперь добавила и все работает. Ура!!!!!!

Еще раз большое спасибо за помощь!

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий