Чем выдернуть урлы из кучи текстовых файлов?

(Ответов: 11, Просмотров: 2570)
Страница 1 из 2 12 Последняя
  1. Гуру Аватар для Dr.Gonzo
    • Регистрация: 03.09.2009
    • Сообщений: 1,503
    • Репутация: 64
    Вопрос для линуксоидов:

    На серваке имеется порядка 10Гб текстовых файлов, в папках и подпапках.
    Нужна прога, которая пробежится по всем этим файлам, и выдернет только урлы.
    На локалке под виндой я для этих целей использую Text Pipe. Но надоедает эти гигабайты скачивать, хотелось бы прямо на сервере собрать урлы.

    Посоветуйте софтину, ведь наверняка должно быть что-то.
    • 0
  2. Senior Member
    • Регистрация: 03.09.2009
    • Сообщений: 100
    • Репутация: 10
    надо писать скрипт на BASH
    • 0
  3. Гуру Аватар для 24110
    • Регистрация: 07.09.2009
    • Сообщений: 1,649
    • Репутация: 91
    Да на PHP написать скриптик по-быстрому и на ночь поставить :)
    • 0
  4. Гуру Аватар для 24110
    • Регистрация: 07.09.2009
    • Сообщений: 1,649
    • Репутация: 91
    Накатал небольшой скриптец. PHP-CLI рулит

    PHP код:
    #!/usr/local/bin/php -q
    <?php


    $start_dir 
    '/usr/local/apache/htdocs/xxx.com/www/test2/files/' ;
    $links 'links.txt' ;


    $pattern "/http:\/\/(www\.)?([^.]+\.[^.\s]+\.?[^.\s]*)/i";

    echo 
    get_links$start_dir ) ;

    function 
    get_links$start_dir )
    {
        global 
    $pattern$links;
        
    $dir opendir$start_dir ) ;
        while (  
    $file readdir$dir ) )
        {
            if ( 
    $file == '.' || $file == '..'  )
                    continue ;

            if ( 
    is_dir$start_dir '/' $file ) )
                    
    get_links$start_dir  '/' $file ) ;
            else if ( 
    is_file$start_dir '/' $file ) )
            {
                    
    $content file_get_contents$start_dir '/' $file ) ;

                    if ( 
    preg_match$pattern$content$match ) )
                    {
                            
    file_put_contents$linksfile_get_contents$links ) . PHP_EOL $match[0] ) ;
                    }
            }
        }

    }


    ?>

    Как запустить:

    1) Проверь путь до PHP-интерпретатора в первой строчке, такой ли у тебя.
    2) В файл index.php записть весь исходник.
    3) Сделать "chmod +x index.php"
    4) сделать links.txt, ему "chmod 777 links.txt"
    5) в скрипте index.php пропиши путь до папки, где лежат файлы - $start_dir, они будут парситься с этой папки рекурсивно по всем вложенным папкам.

    Удачи
    • 0
  5. Member
    • Регистрация: 05.09.2009
    • Сообщений: 37
    • Репутация: 10
    Можно на пёрле скрипт использовать,который будет выдёгивать ссылки,используя регулярные выражения)
    • 0
  6. Гуру Аватар для Dr.Gonzo
    • Регистрация: 03.09.2009
    • Сообщений: 1,503
    • Репутация: 64
    24110

    Вау! Спасибо огромное, затестю, потом отпишу в личку, возможно попрошу слегка доработать скрипт, за небольшое вознаграждение
    • 0
  7. Гуру Аватар для 24110
    • Регистрация: 07.09.2009
    • Сообщений: 1,649
    • Репутация: 91
    Dr.Gonzo, не вопрос - обращайетсь Поможем, чем сможем :)
    Парам-пам-пам!
    • 0
  8. Опытный
    • Регистрация: 04.09.2009
    • Сообщений: 288
    • Репутация: 11
    А для каких целей это поделитесь? А то д меня не как не доходит.
    • 0
  9. Junior Member
    • Регистрация: 08.09.2009
    • Сообщений: 20
    • Репутация: 10
    Цитата Сообщение от blackhat Посмотреть сообщение
    надо писать скрипт на BASH
    .org.ru
    • 0
  10. Гуру Аватар для Dr.Gonzo
    • Регистрация: 03.09.2009
    • Сообщений: 1,503
    • Репутация: 64
    Цитата Сообщение от ilyha Посмотреть сообщение
    А для каких целей это поделитесь? А то д меня не как не доходит.
    Это изощрённый(местами - даже извращённый) способ парсинга:)
    • 0
Страница 1 из 2 12 Последняя

Похожие темы

Темы Раздел Ответов Последний пост
Создание платных файлов программой zipus.ru
Партнерские программы 3 17.03.2010 05:48
Учим php+js: Загрузка файлов в стиле AJAX
Дайджест блогосферы 0 23.12.2009 17:58
Какой секрет редирект урлы?
Google 10 30.09.2009 07:59

У кого попросить инвайт?

Вы можете попросить инвайт у любого модератора:

Информеры