PHP: поиск в текстовом файле после конкретных фраз / слов и вывода - PullRequest
3 голосов
/ 14 июня 2011

Я пытаюсь сделать небольшой скрипт php для автоматизации некоторых рабочих процессов.Сценарий должен прочитать файл (примерно 10-20 КБ на файл).Затем мне нужно поискать в файле некоторые конкретные фразы и вывести - если фразы встречаются - льняные буквы и фразу.

Например, у меня есть текстовый файл, который я читаю и ищув.Я ищу фразы «Цветок желтый», «Лошадь белая» и «смешанный»;

Тогда я получаю:

Строка 4: «Лошадь белая»Строка 19: «Смешанный»; Строка 22: «Смешанный»; Строка 99: «Цветок желтый»… и т. Д.

Я использую этот код, который правильно выводит каждую строку и номер строкино я просто не могу сделать процедуру поиска, которая выводит только искомые фразы:

<?php
$lines = file('my-text-file.txt');

foreach ($lines as $line_num => $line) {
    echo "Line #<b>{$line_num}</b> : " . htmlspecialchars($line) . "<br />\n";
}
?>  

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

Буду очень признателен за любую помощь или предложения, в каком направлении мне идти.

Спасибо
- Местика

Ответы [ 3 ]

2 голосов
/ 14 июня 2011
function search ( $what = array (), $filePath ) {
    $lines = file ( $filePath );

    foreach ( $lines as $num => $line ) {
        foreach ( $what as $needle ) {
            $pos = strripos ( $line, $needle );
            if ( $pos !== false ) {
                echo "Line #<b>{$num}</b> : " . htmlspecialchars($line) . "<br />\n";
            }
        }
    }
}

#   Usage:
$what = array ( 'The horse is white', 'The flower is yellow', 'mixed' );
search ( $what );
1 голос
/ 14 июня 2011

Создайте скрипт, который будет обрабатывать ваш ввод и направлять результаты в ваш скрипт PHP.

0 голосов
...