Программа для вытаскивания текста по рег. выражениям

331
.
aNNiPAk
ДоХтор, а программы для этого дела ни кто не знает?
.
Ей 25
# aNNiPAk (08.01.2016 / 01:08)
ДоХтор, а программы для этого дела ни кто не знает?
Нет наверное таких программ. Если гугл ничего не выдал, то искать практически бесполезно.
.
Mes que un club
А sed'ом или awk? Зачем программу городить, если это 4 команды в консоли
.
aNNiPAk, а можешь скинуть хотя бы один файл, из которого надо вынуть текст? И ещё по 4-му пункту есть вопрос - что именно нужно вытащить из файла? То есть, это должно быть извлечено ^_0-9 или обрезано? Может напишешь пример символов, которые надо вытащить? (например: сохранить надо цифры и латиницу, или т.п.)
.
Koenig
(\/)____o_O____(\/)
aNNiPAk, как то так
<?php

$dir = 'dir';

$resultfile = new SplFileObject('result.txt', 'w');

$fileSPLObjects =  new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dir), RecursiveIteratorIterator::CHILD_FIRST);
foreach($fileSPLObjects as $fullFileName => $fileSPLObject ) {
    if ($fileSPLObject->isFile()) {
        $info = new SplFileInfo($fullFileName);    
        if ($info->getExtension() == 'txt') {
            $content = file_get_contents($fullFileName);
            $patterns = array(
                '#dynasty = "(.*)"#iU',
                '#name = "(.*)"#iU',
                '#leader = "(.*)"#iU',
                '#capital = "(.*)"#iU',
            );
            $resultfile->fwrite(' - ' . basename($fullFileName) . ' - ' . PHP_EOL); // эта строка в результат добавляет имя файла
            foreach($patterns as $pattern) {
                preg_match($pattern, $content, $matches);
                empty($matches[0]) ?: $resultfile->fwrite($matches[0] . PHP_EOL);
            }
            unset($content);
        }
    }
}
.
Koenig
(\/)____o_O____(\/)
ложим в файл код и рядом папку, называем папку dir и запускаем код
работает с любой вложенностью папкок, даже если файл на глубене 100 папок
.
(\/)____o_O____(\/)
aNNiPAk, правда наверное придется лимит выполнения скрипта отключить, так как файлов много, ну и подождать пока скрипт завершит работу
.
(\/)____o_O____(\/)
aNNiPAk, попробуй на 10 файлах
.
(\/)____o_O____(\/)
# Gaucer (08.01.2016 / 01:32)
А sed'ом или awk? Зачем программу городить, если это 4 команды в консоли
кстати набросай консольный вариант, с sed
.
Сексуальность валенка
sed, awk и т.п.
Всего: 20