ФорумПрограммированиеPHP для идиотов → Парсинг ссылок

Парсинг ссылок

  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 18 ноября 2009 г. 8:05, спустя 12 минут 47 секунд


    <?php
    $url = "http://www.dmoz.org/Business/Arts_and_Entertainment/Media_Production/Resumes_and_Portfolios/";
    $body = file_get_contents($url);
    preg_match_all('/href\s*=\s*("|\')?(?<link>[^"\']*)("|\')?/is', $body, $out, PREG_SET_ORDER);
    print_r($out);
    ?>
    будет работать только в 5.2.2 и выше
    Спустя 51 сек.

    <?php
    $url = "http://www.dmoz.org/Business/Arts_and_Entertainment/Media_Production/Resumes_and_Portfolios/";
    $body = file_get_contents($url);
    preg_match_all('/href\s*=\s*("|\')?([^"\']*)("|\')?/is', $body, $out, PREG_SET_ORDER);
    print_r($out);
    ?>
    так должно работать…
    Спустя 77 сек.

    я заметил, что если я в регулярке уберу href= и скобки то получится "http://www.antaressfelken.com/" с кавычками. а как сделать чтоб без кавычек было?
    а зачем вы убираете href? вам не нужны ссылки?
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • SeRebro

    Сообщения: 115 Репутация: N Группа: Кто попало

    Spritz 18 ноября 2009 г. 8:12, спустя 7 минут 35 секунд

    adw0rd,
    мне нужно чтобы оно выводило так:
    http://site.ru/
    http://example.com/


    P.S. так выводит и внутренние тоже, причем так же само:
    href="http://www.antaressfelken.com/" " http://www.antaressfelken.com/ "
    href="http://www.thejohnfleming.com" " http://www.thejohnfleming.com "
    href="http://www.simonharries.com/" " http://www.simonharries.com/ "
    href="http://www.alan-howarth.com" " http://www.alan-howarth.com "

    подскажите мне регулярку с которой можно вывести именно так, как я описал выше плз
  • NRG

    Сообщения: 4761 Репутация: N Группа: в ухо

    Spritz 18 ноября 2009 г. 8:16, спустя 3 минуты 15 секунд

    SeRebro, я думаю что без пополнения пыхофонда тебе никак не обойтись…. =)
  • SeRebro

    Сообщения: 115 Репутация: N Группа: Кто попало

    Spritz 18 ноября 2009 г. 8:18, спустя 2 минуты 29 секунд

    NRG, я всего навсего бедный студент :[
  • NRG

    Сообщения: 4761 Репутация: N Группа: в ухо

    Spritz 18 ноября 2009 г. 8:19, спустя 51 секунду


    NRG, я всего навсего бедный студент :[
    ты думаешь тут сидят богатые пенсионеры ? =))
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 18 ноября 2009 г. 9:30, спустя 1 час 11 минут 5 секунд

    SeRebro, причем тут вывод и регулярка? В том примере кода с регуляркой все нормально парсится, вы мне лучше покажите как вы выводите?
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • SeRebro

    Сообщения: 115 Репутация: N Группа: Кто попало

    Spritz 18 ноября 2009 г. 9:33, спустя 3 минуты 18 секунд

    adw0rd, я уже показывал
    foreach($out as $o){
    for ($idx = 0, $c = count($o); $idx < $c; $idx++)
    echo $o[$idx] . ' ';
    echo '<br />';
    }
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 18 ноября 2009 г. 9:49, спустя 15 минут 52 секунды

    SeRebro, да, код у вас жестокий )


    <?php
    $url = "http://www.dmoz.org/Business/Arts_and_Entertainment/Media_Production/Resumes_and_Portfolios/";
    $body = file_get_contents($url);
    preg_match_all('/href\s*=\s*("|\')?(http:\/\/[^"\']*)("|\')?/is', $body, $out, PREG_SET_ORDER);
    //print_r($out);

    foreach ($out as $o) {
       print $o[2].'<br/>';
    }
    ?>
    Спустя 29 сек.
    Результаты:
    http://blog.dmoz.org/
    http://report-abuse.dmoz.org/?cat=Business/Arts_and_Entertainment/Media_Production/Resumes_and_Portfolios
    http://www.michaelbolanos.com/
    http://www.craigburnett.com
    http://www.martindenning.com/
    http://www.antaressfelken.com/
    http://www.thejohnfleming.com
    http://www.simonharries.com/
    http://www.alan-howarth.com
    http://www.countrylovers.co.uk/paddyhughes/index.htm
    http://www.setpa.com
    http://samlongoria.com
    http://www.movingcamerasolutions.net
    http://scottmccullough.com
    http://michaelmcintosh.com
    http://www.mckears.com
    http://www.arangham.com/anita/anita.html
    http://realitory.com/
    http://www.howardjreekie.com/
    http://www.reens.com/
    http://www.cyberschmid.com/
    http://www.ericsherman.com
    http://ralfstrathmann.com
    http://www.cygnuspictures.com/
    http://www.dorotaswies.com/
    http://lisavandermey.tripod.com/
    http://www.jamesbwinburn.com/
    ….
    и т.д.
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • SeRebro

    Сообщения: 115 Репутация: N Группа: Кто попало

    Spritz 18 ноября 2009 г. 10:00, спустя 10 минут 51 секунду

    adw0rd, спасибо!!! заработало) и ещё если не сложно подскажите функцию, которая удаляет из массива элемент, или из элемента символ по шаблону
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 18 ноября 2009 г. 10:38, спустя 38 минут 21 секунду

    SeRebro, [man]unset[/man]
    Спустя 44 сек.
    или из элемента символ по шаблону
    [man]preg_replace[/man]
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • SeRebro

    Сообщения: 115 Репутация: N Группа: Кто попало

    Spritz 18 ноября 2009 г. 10:39, спустя 53 секунды

    adw0rd, спасибо!
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 18 ноября 2009 г. 10:49, спустя 9 минут 54 секунды



    NRG, я всего навсего бедный студент :[
    ты думаешь тут сидят богатые пенсионеры ? =))
    да, конечно! я вот например уже с 10ок внучков имею =))
    Сапожник без сапог
  • SeRebro

    Сообщения: 115 Репутация: N Группа: Кто попало

    Spritz 18 ноября 2009 г. 14:32, спустя 3 часа 43 минуты 5 секунд

    phpdude, укажи меня в своем завещании =))

    adw0rd, unset это не то. мне нужно чтобы удаляло те элементы массива, в которых содержится определенный текст.
  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz 18 ноября 2009 г. 22:39, спустя 8 часов 6 минут 44 секунды

    SeRebro, array_search юзай для такой задачи.
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 18 ноября 2009 г. 22:56, спустя 17 минут 28 секунд

    Или [man]preg_grep[/man]
    Спустя 62 сек.
    Кстати, вам можно опустить флаг PREG_SET_ORDER и обратится к одному массиву, а далее юзать preg_grep
    https://smappi.org/ - платформа по созданию API на все случаи жизни

Пожалуйста, авторизуйтесь, чтобы написать комментарий!