Forum Webscript.Ru
Программирование => Perl => Тема начата: AlexRH от 04 Ноября 2003, 15:03:08
-
Имеется текстовый файл с разделителями.
Имеется скрипт который ищет в $_ все, что ввели в поле формы.
Не могут понять, как сделать поиск по нескольким|всем полям.
Подскажите, pls.
-
Где ищет? В файле с разделителями?
AlexRH:
Имеется скрипт который ищет в $_ все, что ввели в поле формы.
Давайте говорить о том о чем имеем понятие. Специальная переменная это иллюзия в твоем вопросе.AlexRH:
Не могут понять, как сделать поиск по нескольким|всем полям.
разбить на слова
perldoc -f split
и искать по каждому элемента массива.
-
NeoNox:
Где ищет? В файле с разделителями?
Да, открываю файл и считываю по строкам.
Затем разбиваю split\'ом.
NeoNox:
разбить на слова
и искать по каждому элемента массива.
Какого?
-
Какого?
Полученного в результате split.
-
Даю наводку:
$stroka это содержимое файла
$zapros это строка запроса
$s_string = (join \'|\', (split / /, $zapros));
print "Найдено!\\n" if ($stroka =~ /$s_string/);
$ perl -de0
DB<1> $stroka = "Oh yeah 2"
DB<2> $zapros = "eah no"
DB<3> $s_string = (join \'|\', (split / /, $zapros));
DB<4> print "Найдено!\\n" if ($stroka =~ /$s_string/);
Найдено!
Это если по любому из слов в запросе. А если искать все вместе слова то еще проще:
$ perl -de0
DB<1> $stroka = "Oh yeah 2"
DB<2> $zapros = "eah no"
DB<3> $s_string = $zapros;
DB<4> print "Найдено!\\n" if ($stroka =~ /$s_string/);
-
Спасибо тем, кто откликнулся.
Извиняюсь, что с запозданием возвращаюсь к обсуждению, но хотелось бы продолжить.
Как мне создать $zapros из нескольких полей формы?
use CGI qw(:all);
$q =new CGI;
$f1=$q->param(\'f1\');
$f2=$q->param(\'f2\');
$f3=$q->param(\'f4\');
$zapros=(join \'|\', ($f1, $f2, $f3));
-
Именно так.
Или f1 или f2 или f4.
В чем трудность?
-
Собственно нет никаких трудностей. Я просто уточнить хотел.