|
|
|
| Это продолжение темы http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=981
Хм... а может вы дадите прямой URL на страницу, где уже расставлены ключевые слова, чтобы я мог отладить скрипт на примере этой страницы. | |
|
|
|
|
|
|
|
для: cheops
(27.12.2004 в 13:33)
| | хорошо, посылаю письмо. Надеюсь поможите, но на сайте имя форме не дано. | |
|
|
|
|
|
|
|
для: Алл
(27.12.2004 в 14:23)
| | Готово, почитайте комментарий к search.php. | |
|
|
|
|
|
|
|
для: cheops
(27.12.2004 в 15:10)
| | cheops, посмотрел я на скрипт, запустил его, в принципе он рабочий, но выдает в итоге не совсем то что надо. Какие бы слова не вбивались в поиск он все равно выдает полный список ссылок где лежат картинки и не выводит фоторгафии. | |
|
|
|
|
|
|
|
для: Алл
(29.12.2004 в 06:13)
| | Фотографии сложно извлечь из цельного HTML, в этом случае нужно создавать либо таблицу, а ещё проще текстовый файл со списком фотографий и ключевых слов для этой фотографии - это позволит выводить их непосредственно на странице результатов.
PS Хм... странно у меня выводилось лишь несколько ссылок. | |
|
|
|
|
|
|
|
для: cheops
(29.12.2004 в 08:17)
| | ясно, я так понял необходимо вставить все фотографии в один txt документ, да? вместе с ключевыми словами. А как тогда поиск будет выводить допустим лишь одно фото из многих. Если использовать данный скрипт он просто выведет ссылку на txt шник и все. | |
|
|
|
|
автор: cheops (29.12.2004 в 13:32) |
|
|
для: Алл
(29.12.2004 в 09:02)
| | Если у нас будет такой текстовый файл мы реализуем другую систему поиска, она не будет завязана на подразделы, а конечная страница будет сразу выводить все найденные фотографии. | |
|
|
|
|
|
|
|
для: cheops
(29.12.2004 в 13:32)
| | Хорошо, приступаю к созданию текстового файла, тоько один вопрос, в нем должны размещаться сами фоторгафии или ссылки где они находятся? | |
|
|
|
|
|
|
|
для: Алл
(30.12.2004 в 06:42)
| | Ссылки, т.е. что вроде
image/тра-та-та.jpg город, собор, здание, солнечный день
image/тра-та-та.jpg город, вокзал, здание, солнечный день
|
| |
|
|
|
|
|
|
|
для: cheops
(30.12.2004 в 10:09)
| | текстовый докутент создан под именем base.txt, чем должен отличаться скрипт от предыдущего? | |
|
|
|
|
|
|
|
для: Алл
(10.01.2005 в 07:34)
| | Да скрипт должен отличаться, я сегодня вечером постараюсь его создать. | |
|
|
|
|
|
|
|
для: Алл
(10.01.2005 в 07:34)
| | Давайте от этого скрипта отталкиваться - он просто ищет фотографии и выводит их одну под другой.
<?php
// Имя файла с путями к фотографиям и ключевыми словами
$filename = " base.txt";
// Помещаем содержимое файла в массив $photo_line
$photo_line = file($filename);
// Проверяем то, что передано в форме
// дабы исключить взлом
$_GET['name'] = str_replace("."," ",$_GET[name]);
$_GET['name'] = str_replace("'"," ",$_GET[name]);
$_GET['name'] = str_replace('"'," ",$_GET[name]);
if(empty($_GET['name']))
{
echo "Текстовое поле осталось не заполненным - введите слово для поиска";
}
// В цикле ищем вхождения
foreach($photo_line as $lines)
{
// Проверяем входит ли в состав строки искомое
// слово - если входит - запоминаем его номер.
if(preg_match("|".$_GET['name']."|i", $lines))
{
$path = substr($lines,0,strpos($lines," "));
$photo_path[] = $path;
}
}
// Выводим фотографии
foreach($photo_path as $pathp)
{
echo "<IMG src=$pathp width=779 height=106 border=0><br>";
}
?>
|
PS Этот код следует поместить в search.php. | |
|
|
|
|
|
|
|
для: cheops
(10.01.2005 в 22:04)
| | Попробоват тестировать следующий код
<?php
Error_Reporting(E_ALL & ~E_NOTICE);
// Имя файла с путями к фотографиям и ключевыми словами
$filename = " base.txt";
// Помещаем содержимое файла в массив $photo_line
$photo_line = file($filename);
// Проверяем то, что передано в форме
// дабы исключить взлом
$_GET['name'] = str_replace("."," ",$_GET[name]);
$_GET['name'] = str_replace("'"," ",$_GET[name]);
$_GET['name'] = str_replace('"'," ",$_GET[name]);
if(empty($_GET['name']))
{
echo "Текстовое поле осталось не заполненным - введите слово для поиска";
}
// В цикле ищем вхождения
foreach($photo_line as $lines)
{
// Проверяем входит ли в состав строки искомое
// слово - если входит - запоминаем его номер.
if(preg_match("|".$_GET['name']."|i", $lines))
{
$path = substr($lines,0,strpos($lines," "));
$photo_path[] = $path;
}
}
// Выводим фотографии
foreach($photo_path as $pathp)
{
echo "<IMG src=$pathp width=779 height=106 border=0><br>";
}
?>
|
Выдает следующие ошибки
Warning: file( base.txt): failed to open stream: No such file or directory in z:\home\test1.ru\www\search.php on line 6
Текстовое поле осталось не заполненным - введите слово для поиска
Warning: Invalid argument supplied for foreach() in z:\home\test1.ru\www\search.php on line 17
Warning: Invalid argument supplied for foreach() in z:\home\test1.ru\www\search.php on line 28 | |
|
|
|
|
|
|
|
для: Алл
(14.01.2005 в 06:26)
| | А файл base.txt расположен в той же директории, что и search.php? | |
|
|
|
|
|
|
|
для: cheops
(14.01.2005 в 13:20)
| | Ошибку я нашел, скрипт заработал (ковычки в 4 строке (base.txt)).
Но проблемма в том, что в результате выводиться не только фото которые соответствуют поиску, но и остальные, а так же строка говорящая что надо ввести слово в форму поиска. т.е. все подряд. | |
|
|
|
|
|
|
|
для: Алл
(17.01.2005 в 08:29)
| | Да, нужно переписать скрипт следующим образом
<?php
Error_Reporting(E_ALL & ~E_NOTICE);
// Имя файла с путями к фотографиям и ключевыми словами
$filename = " base.txt";
// Помещаем содержимое файла в массив $photo_line
$photo_line = file($filename);
// Проверяем то, что передано в форме
// дабы исключить взлом
$_GET['name'] = str_replace("."," ",$_GET[name]);
$_GET['name'] = str_replace("'"," ",$_GET[name]);
$_GET['name'] = str_replace('"'," ",$_GET[name]);
if(empty($_GET['name']))
{
exit ("Текстовое поле осталось не заполненным - введите слово для поиска");
}
// В цикле ищем вхождения
foreach($photo_line as $lines)
{
// Проверяем входит ли в состав строки искомое
// слово - если входит - запоминаем его номер.
if(preg_match("|".$_GET['name']."|i", $lines))
{
$path = substr($lines,0,strpos($lines," "));
$photo_path[] = $path;
}
}
// Выводим фотографии
foreach($photo_path as $pathp)
{
echo "<IMG src=$pathp width=779 height=106 border=0><br>";
}
?>
|
В форме текстовое поле называется name? | |
|
|
|
|
|
|
|
для: cheops
(17.01.2005 в 13:25)
| | Скрипт работает уже лучше, но постоянно выдает чтобы ввели слово в текстовом поле, я в форме прописывал name как name и обзывал его и по другому, но результат не меняется
<FORM align="center" name="name" action="search.php" method="post"><INPUT name="name" size="20" type="text" vspace="7".......
Примерно так, если совместить оба варианта.
Так как подумал, что он (скрипт) не видит само текстовое поле
Может проблемма все-таки в скрипте? | |
|
|
|
|
|
|
|
для: Алл
(18.01.2005 в 06:24)
| | Может быть подскажите мне в чем ошибка? | |
|
|
|
|
|
|
|
для: Алл
(18.01.2005 в 06:24)
| | Хм... у нас форма и поле называются одинаково... name и name - попробуйте переименовать форму... Кроме того, не могли бы вы подробнее рассказать о действиях которые приводят к сбою? Чтобы я мог их воспроизвести? | |
|
|
|
|
|
|
|
для: cheops
(18.01.2005 в 14:53)
| | это я для примера назвал форму name, на самом деле я пробовал именовать и форму, и поле по очереди, результат вывода скрипта не менялся. А выдает он во всех случаях только одну текстовую строчку : Текстовое поле осталось не заполненным - введите слово для поиска. Причем не важно соответствует ли вводимое текстовое слово ключевому или нет,
вот так из крайности в крайность, Если помните, в предыдущем варианте скрипта он выводил все подряд. | |
|
|
|
|
|
|
|
для: Алл
(19.01.2005 в 06:44)
| | Я понял в чём проблема, в форме стоит метод POST:
а в обработчике ожидается метод GET - следует либо в форме поставить метод GET, либо в обработчике заменить все $_GET на $_POST | |
|
|
|
|
|
|
|
для: cheops
(19.01.2005 в 12:59)
| | Вот и правда, спасибо, а то я тут уже голову сломал пытаясь понять в чем ошибка. У меня правда есть еще один вопрос, наверное надо создать новую тему, так как в эту он немного не вписывается. тема будет называться "Ссылка в выводе скрипта". | |
|
|
|