Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.10.2017, 13:04
Профессор
Отправить личное сообщение для Sonya Посмотреть профиль Найти все сообщения от Sonya
 
Регистрация: 07.07.2016
Сообщений: 281

Поиск из файла
Здравствуйте! Опять проблемы с поиском. С поиском заданных слов в файле разобралась в разных вариациях. Но никак не могу сообразить как сделать наоборот:
Есть текстовый файл в нем строки-словосочетания, есть заданное предложение, как сделать поиск совпадений не в файле, а из файла, именно в таком порядке, связанно это с тем, что заданное предложение может быть длинным, а словосочетания на порядок короче, поэтому вариант поиска предложения в файле не подходит. А поиск в предложении на наличие словосочетаний, то что нужно.
Как перебрать массив строк файла на предмет совпадения вхождений в предложении?
Ответить с цитированием
  #2 (permalink)  
Старый 07.10.2017, 13:31
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Sonya,
есть готовые решения для этого, ищите в сети, подключайте и используйте. А вообще, что вы уперлись в файлы, есть БД, а в них есть полнотекстовый поиск, логику которого можно задавать.
Ответить с цитированием
  #3 (permalink)  
Старый 07.10.2017, 13:40
Профессор
Отправить личное сообщение для Sonya Посмотреть профиль Найти все сообщения от Sonya
 
Регистрация: 07.07.2016
Сообщений: 281

С БД только начала разбираться. А готовых решений не нашла, поэтому и написала на форуме.
Ответить с цитированием
  #4 (permalink)  
Старый 07.10.2017, 15:55
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Значит не можете конкретизировать свой поисковый запрос.

Если:

предложение - "А Б вгде Ж З"
словосочетания - "А Б", "Ж З"

то обходом в цикле массива словосочетаний ищем их в предложении.

Если:

предложение - "А Ж вгде З Б"
словосочетания - "А Б", "Ж З"

и тоже нужно найти, то тоже самое, но с добавлением логики поиска И/ИЛИ

Видимо у вас структуры управляющие/хранимые не очень удачно построены, что требуются такие затратные операции.
Ответить с цитированием
  #5 (permalink)  
Старый 08.10.2017, 09:10
Профессор
Отправить личное сообщение для Sonya Посмотреть профиль Найти все сообщения от Sonya
 
Регистрация: 07.07.2016
Сообщений: 281

Никак не получается
Ответить с цитированием
  #6 (permalink)  
Старый 08.10.2017, 10:24
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Покажите пример того что искать и в чем искать.
Ответить с цитированием
  #7 (permalink)  
Старый 08.10.2017, 11:13
Профессор
Отправить личное сообщение для Sonya Посмотреть профиль Найти все сообщения от Sonya
 
Регистрация: 07.07.2016
Сообщений: 281

$search = 'поиск слов';
$lines = file('text.txt');
foreach($lines as $num_line => $line_value)
{
    if(strpos($line_value, $search) !== FALSE)
        echo "$num_line $line_value<br>";
}

Так я ищу словосочетание в текстовом файле text.txt. Содержание текстового файла:
поиск слов
поиск предложений
поиск слова
поисковик
поиск словечек
поиск словосочетаний
поиски словечек

Естественно, все находит, но никак не могу сделать, чтобы процесс был обратным, чтобы из файла искал при том, чтобы выводил и номера строк совпадений.
Ответить с цитированием
  #8 (permalink)  
Старый 08.10.2017, 11:24
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Sonya
не могу сделать, чтобы процесс был обратным
Что это значит?

Если поиск, это есть точное сопоставление строк $search и $line_value, то не strpos($line_value, $search), а array_keys() с параметром поиска, цикл при этом не нужен.
Ответить с цитированием
  #9 (permalink)  
Старый 08.10.2017, 11:38
Профессор
Отправить личное сообщение для Sonya Посмотреть профиль Найти все сообщения от Sonya
 
Регистрация: 07.07.2016
Сообщений: 281

Сообщение от laimas Посмотреть сообщение
Что это значит?
Поиск из файла text.txt в строке $search, т.к. её содержание может быть таким: "Осуществить поиск слов в тексте".
Ответить с цитированием
  #10 (permalink)  
Старый 08.10.2017, 11:46
Профессор
Отправить личное сообщение для Sonya Посмотреть профиль Найти все сообщения от Sonya
 
Регистрация: 07.07.2016
Сообщений: 281

Сообщение от laimas Посмотреть сообщение
Если поиск, это есть точное сопоставление строк $search и $line_value, то не strpos($line_value, $search), а array_keys() с параметром поиска, цикл при этом не нужен.
Пробовала, но это мне больше подошло, а что с этим могут быть проблемы?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не удается подключить javascript-код из отдельного файла Mack Events/DOM/Window 1 07.03.2015 17:05
Подгрузка информации через DIV с обработкой файла на стороне сервера Azartno jQuery 1 26.05.2012 15:07
Как узнать размер загружаемого файла? shkarbatov Серверные языки и технологии 5 14.08.2011 17:12
Поиск в тексте javascript jQuery 3 31.05.2011 11:40
Поиск слова в исходном коде html страницы klsorat2010 Ваши сайты и скрипты 1 20.05.2010 23:46