Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Помогите найти скрипт поиска по сайту
 
 автор: Алл   (03.12.2004 в 12:22)   письмо автору
 
 

У меня такая проблемма . Нужен скрипт поиска по фото сайту. Допустим я для каждой фотки прописываю ключевые слова. А в процессе поиска мне выдаются фотки на странице, удовлетворяющие запросу!

   
 
 автор: cheops   (03.12.2004 в 12:35)   письмо автору
 
   для: Алл   (03.12.2004 в 12:22)
 

Универсальный поиск по сайту вряд ли можно создать, обычно под каждый конкретный сайт создаётся собственная система поиска. Ключевые слова хранятся в базе (файлах) или прямо в HTML?

PS Вот наиболее интересные темы по поиску
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=148
http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=514
http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=807

   
 
 автор: glsv (Дизайнер)   (04.12.2004 в 00:12)   письмо автору
 
   для: Алл   (03.12.2004 в 12:22)
 

"Фотографии" – это приложение какое то? Т.е. есть там база данных и какое то ее подобие? Или это просто сверстанные странички?

   
 
 автор: Алл   (06.12.2004 в 07:12)   письмо автору
 
   для: glsv (Дизайнер)   (04.12.2004 в 00:12)
 

это просто сверстанные странички, на которых располагаются фотки!

   
 
 автор: cheops   (06.12.2004 в 12:48)   письмо автору
 
   для: Алл   (06.12.2004 в 07:12)
 

А не могли бы вы прикрепить к сообщению примерчик такой страницы... много ли там текста и прочее... Можно один раз пройтись по всем страницам скиптом или вручную (если их немного) и составить файл ключевых слов и ссылок на страницы, откуда эти слова взяты. Тогда поиск будет сводится к поиску по этому файлу. Такой приём позволит здорово уменьшить время поиска.

   
 
 автор: Алл   (07.12.2004 в 07:43)   письмо автору
 
   для: cheops   (06.12.2004 в 12:48)
 

Я могу сказать адрес сайта
А именно: photogor.com
Посмотрите что можно сделать!

   
 
 автор: cheops   (07.12.2004 в 12:02)   письмо автору
 
   для: Алл   (07.12.2004 в 07:43)
 

Постараюсь к вечеру чем-нибудь порадовать... а пока встречный вопрос: будет ли менятся число разделов и соотвественно HTML-файлов?

   
 
 автор: Алл   (07.12.2004 в 13:14)   письмо автору
 
   для: cheops   (07.12.2004 в 12:02)
 

нет, число разделов не будет меняться! Изменению подлежат лишь фотографии и их колличество!

   
 
 автор: Алл   (08.12.2004 в 05:56)   письмо автору
 
   для: cheops   (07.12.2004 в 12:02)
 

cheops, есть какие-нибудь результаты?

   
 
 автор: cheops   (08.12.2004 в 13:51)   письмо автору
 
   для: Алл   (08.12.2004 в 05:56)
 

Давайте отталкиваться от такого скрипта, постепенно отлаживая его...
<?php
  
// Форме внизу странице следует назначить
  // обработчик, который бы указывал на
  // этот скрипт: action=search.php
  // А так же передавать данные методом POST:
  // method=POST
  // Текстовому окну в форме тоже следует дать
  // имя - name
  
$filenames = array("Природа"=>"g_prir.htm",
                    
"Портрет"=>"g_port.htm",
                    
"Натюрморт"=>"g_natur.htm",
                    
"Город"=>"g_gorod.htm",
                    
"Животные"=>"g_zoo.htm",
                    
"Профессии"=>"g_prof.htm",
                    
"Спорт"=>"g_sport.htm",
                    
"Индустрия"=>"g_industr.htm",
                    
"Люди"=>"g_ludi.htm",
                    
"Фантазии"=>"g_fant.htm",
                    
"Разное"=>"g_razn.htm",
                    
"Друзья"=>"g_drug.htm");
  foreach(
$filenames as $key => $filename)
  {
    
$fd = @fopen($filename,"r");
    
$bufer = @fread($fd,filesize($filename));
    @
fclose($fd);
    
$patern "|<FONT[^>]*>$_POST[name]|i";
    if(!empty(
$bufer))
    {
      
preg_match_all($patern$bufer$matchesPREG_PATTERN_ORDER);
      
$total count($matches[0]);
      
// Если ключевое слово найдено в файле
      // выводим на него ссылку
      
if($total 0) echo "<a href=$filename>$key</a><br>";
    }
  } 
?>

   
 
 автор: Алл   (09.12.2004 в 06:22)   письмо автору
 
   для: cheops   (08.12.2004 в 13:51)
 

ТОгда следующий вопрос: Как прописать для каждой фотки несколько кючевых слов например пейзаж, березка, пенек и т.д. и как сделать так чтобы найденые фотки появлялись в новом окне?

   
 
 автор: cheops   (09.12.2004 в 09:53)   письмо автору
 
   для: Алл   (09.12.2004 в 06:22)
 

А может нам в параметр alt засунуть ключевые слова? Тогда скрипт следует поменять на следующий
<?php
  
// Форме внизу странице следует назначить
  // обработчик, который бы указывал на
  // этот скрипт: action=search.php
  // А так же передавать данные методом POST:
  // method=POST
  // Текстовому окну в форме тоже следует дать
  // имя - name
  
$filenames = array("Природа"=>"g_prir.htm",
                    
"Портрет"=>"g_port.htm",
                    
"Натюрморт"=>"g_natur.htm",
                    
"Город"=>"g_gorod.htm",
                    
"Животные"=>"g_zoo.htm",
                    
"Профессии"=>"g_prof.htm",
                    
"Спорт"=>"g_sport.htm",
                    
"Индустрия"=>"g_industr.htm",
                    
"Люди"=>"g_ludi.htm",
                    
"Фантазии"=>"g_fant.htm",
                    
"Разное"=>"g_razn.htm",
                    
"Друзья"=>"g_drug.htm");
  foreach(
$filenames as $key => $filename)
  {
    
$fd = @fopen($filename,"r");
    
$bufer = @fread($fd,filesize($filename));
    @
fclose($fd);
    
$patern "|<[^>]*><BR><FONT[^>]*>[^<]*|i";
    if(!empty(
$bufer))
    {
      
preg_match_all($patern$bufer$matchesPREG_PATTERN_ORDER);
      
$flag_find false;
      foreach(
$matches[0] as $line)
      {
        if(
strpos($line,$_POST['name'])) $flag_find true;
      }
      
// Если ключевое слово найдено в файле
      // выводим на него ссылку
      
if($flag_find) echo "<a href=$filename>$key</a><br>";
    }
  } 
?>

Про новое окно можно посмотреть по ссылке или задать вопрос в HTML+CSS+JavaScript http://www.softtime.ru/forum/index.php?id_forum=4

http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=502

   
 
 автор: Алл   (09.12.2004 в 13:31)   письмо автору
 
   для: cheops   (09.12.2004 в 09:53)
 

cheops, если в alt прописывать кучу ключевых слов для каждой фотки, то при наведении на фото появиться огромный комментарий?

   
 
 автор: cheops   (09.12.2004 в 21:45)   письмо автору
 
   для: Алл   (09.12.2004 в 13:31)
 

Ну... тогда нужно посоветоваться с дизайнерами http://www.softtime.ru/forum/index.php?id_forum=4 чем там сейчас модно - невидимым шрифтом или фриштом нулевого размера писать, чтобы за одно и поисковики страницы индексили, а когда будет готова страница с ключевыми словами - составим новое регулярное вырежение уже под эти ключевые слова...

   
 
 автор: glsv (Дизайнер)   (09.12.2004 в 22:58)   письмо автору
 
   для: cheops   (09.12.2004 в 21:45)
 

Моднее всего в последнее время делать это открыто.
Пусть у каждой фотки рядом будет маленький абзац, где и будут перечислены эти ключевые слова. И людям хорошо и поисковикам и нашему регулярному выражению.
Посетители пока будут ждать загрузку картинок смогут прочитать ключевые слова и понять - нужна им эта картинка или нет.

Если все же открыто писать это нельзя, то давайте пообсуждаем это в форуме HTML+CSS+JavaScript.

   
 
 автор: Алл   (10.12.2004 в 07:35)   письмо автору
 
   для: cheops   (09.12.2004 в 21:45)
 

Я пробилдля всех фоток новые ключевые слова, получилось вовсе не мерзко, а каким образом поисковик найдет карлинку по alt надо ли что-нить менять в html коде
и еще, я в html код вставил следующее выражение
<?php
include ("index.php");
?>
но данный файл не начал работу. Что я сделал не так?

   
 
 автор: cheops   (10.12.2004 в 09:33)   письмо автору
 
   для: Алл   (10.12.2004 в 07:35)
 

Я к сожалению не могу пока до сайта достучатся, чтобы сообразить что к чему...
Для того, чтобы выполнялся PHP-код файл следует либо переименовать в *.php, либо прописать html-файлы как PHP-файлы, как это описывается по ссылке:

http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=1010

   
 
 автор: Ozxar   (10.12.2004 в 11:54)   письмо автору
 
   для: cheops   (10.12.2004 в 09:33)
 

Вопрос а если все держиться на базе как тогда быть?

   
 
 автор: cheops   (10.12.2004 в 22:40)   письмо автору
 
   для: Ozxar   (10.12.2004 в 11:54)
 

С базой проще - там можно осуществлять полнотекстовый поиск... но это лучше обсуждать в форуме MySQL

   
 
 автор: Алл   (13.12.2004 в 12:06)   письмо автору
 
   для: cheops   (10.12.2004 в 22:40)
 

А все-таки как обойтись без MySQL

   
 
 автор: cheops   (13.12.2004 в 12:19)   письмо автору
 
   для: Алл   (13.12.2004 в 12:06)
 

Хм... сейчас поглядег не увидел ключевых слов - т.е. будем действовать по старому варианту? Зато увидел, что появились дополнительные страницы, т.е. открывать файлы тоже надо будет по регулярному выражению...

   
 
 автор: Алл   (14.12.2004 в 06:44)   письмо автору
 
   для: cheops   (13.12.2004 в 12:19)
 

Ключевые слова вбиваются в alt т.е. просто прописываются там, а на сайте их нет потому, что фоток очень много, и они еще не выкладывались, выставленны лишь "опытные образцы" (по три фотографии на страницу), дополнительные НTML страницы тоже не появились, добавились только несколько php и одна Html была переделана в php (там находится index гостевой книги).

   
 
 автор: Алл   (20.12.2004 в 09:32)   письмо автору
 
   для: cheops   (10.12.2004 в 09:33)
 

сделал все как здесь написано в самой форме прописал метод post асtion=search.php ввел имя в форме "s", а сам скрипт сделал как search.php,
ввожу ключевое слово, а он мне выдает что мол ошибка в 34 строке.
Как быть?

   
 
 автор: Алл   (20.12.2004 в 09:13)   письмо автору
 
   для: cheops   (09.12.2004 в 09:53)
 

сделал все как здесь написано в самой форме прописал метод post асtion=search.php ввел имя в форме "s", а сам скрипт сделал как search.php,
ввожу ключевое слово, а он мне выдает что мол ошибка в 34 строке.
Как быть?

   
 
 автор: cheops   (20.12.2004 в 13:15)   письмо автору
 
   для: Алл   (20.12.2004 в 09:13)
 

А что за ошибка, что PHP пишет в окно браузера?

   
 
 автор: Алл   (22.12.2004 в 06:03)   письмо автору
 
   для: cheops   (20.12.2004 в 13:15)
 

Выдает он следующее
Parse error: parse error in z:\home\test1.ru\www\search.php on line 33
и еще для чего я задавал имя для формы? Как-нибудь это должно быть отражено в скрипте?

   
 
 автор: glsv (Дизайнер)   (22.12.2004 в 11:08)   письмо автору
 
   для: Алл   (22.12.2004 в 06:03)
 

А прикрепите код к сообщениию. Нам ведь неизвестно что в 33 строке.

   
 
 автор: Алл   (23.12.2004 в 06:40)   письмо автору
 
   для: glsv (Дизайнер)   (22.12.2004 в 11:08)
 

код скрипта search.php я взял такой, как подсказал сheops (в этой теме последний код)

   
 
 автор: cheops   (23.12.2004 в 09:47)   письмо автору
 
   для: Алл   (23.12.2004 в 06:40)
 

Да... действительно, так как у меня под рукой небыло HTML-страниц - писал в слепую и не тестировал - ошибка в том посте исправлена - попробуйте ещё раз.

   
 
 автор: Алл   (24.12.2004 в 08:51)   письмо автору
 
   для: cheops   (23.12.2004 в 09:47)
 

запустил я данный скрипт, он показал мне ошибку
Notice: Undefined index: name in z:\home\test1.ru\www\search.php on line 33
я тогда ввел в тело скрипта строчку
Error_Reporting(E_ALL & ~E_NOTICE);
ошибку он не выдает, но и на мой запрос не отвечает, показывает пустой экран (фото не выводит). А запрос я делал по слову природа, в alt е у многих фоток прописанно именно это слово. В чем проблемма не понимаю?

   
 
 автор: Алл   (27.12.2004 в 06:10)   письмо автору
 
   для: Алл   (24.12.2004 в 08:51)
 

Дайте хоть какой-нибудь совет, что дальше делать!

   
 
 автор: cheops   (27.12.2004 в 13:34)   письмо автору
 
   для: Алл   (27.12.2004 в 06:10)
 

Что-то пропустил ваш ответ... давайте продолжим обсуждение в другой теме http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=1273 - эта уже слишком длинная.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования