|
|
|
|
|
для: cheops
(25.03.2005 в 09:21)
| | Точно! всё работает, спасибо! | |
|
|
|
|
|
|
|
для: casper
(25.03.2005 в 00:37)
| | Пусть в массиве $search находятся слова которые необходимо найти, тогда можно реализовать следующую конструкцию
<?php
// Обходим строки массива файлов
foreach($word as $k => $s)
{
// Флаг, принимающий значение true, если найдено
// вхождение одного из ключевых слов
$flag = false;
// Обходим ключевые слова
foreach($search as $find)
{
if(substr_count($s, $find)>=1) $flag = true;
}
if ($flag)
{
// Выводим результат
}
}
?>
|
Т.е. перед анализом каждой строки устанавливаем значение переменной $flag в false, если найдено хоть одно вхождение присваиваем флагу значение true - по результату состояния флага выводим или не выводим строку из файла в окно браузера. | |
|
|
|
|
|
|
|
для: cheops
(24.03.2005 в 22:12)
| | Насчёт функции explode() я знаю, она разделяет строку которую пользователь ввёл на отдельные слова.. А как сделать теперь что бы каждое из слов искалось в массиве, и если в массиве будет найдено оба слова, то что бы значение этого массива выводилось только один раз ? | |
|
|
|
|
|
|
|
для: casper
(24.03.2005 в 16:58)
| | Фразу $search следует разбить на отдельные слова, например, при помощи функции explode http://www.softtime.ru/dic/id_dic=21&id_group=1 или preg_split http://www.softtime.ru/dic/id_dic=141&id_group=3 и в цикле foreach организовать несколько проверок (if). | |
|
|
|
|
|
|
| Здравствуйте,
вот скрипт поиска который я сделал:
$word = file("text.txt");
foreach($word as $k => $s) {
if(substr_count($s, $search)>=1) {
$show = str_replace($search, "<font color=blue><b>$search</b></font>", $s);
echo "$show<br>";
|
Но проблема в том, что он ищет выражения введёный пользователем целиком, то есть логикой И. А как мне сделать что бы он искал с логикой ИЛИ ?
Зарание спасибо. | |
|
|
|
|