Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Wyciąganie URLi
Forum PHP.pl > Forum > PHP
tree
Mam pewien problem dotyczący strony. Chciałbym z niej pobrać URLe tylko nie wiem w jaki sposób. Otwieram stronę, wczytuję plik do zmiennej i co dalej. W jaki sposób pobrać wszystkie adresy z treści strony za pomocą wyrażeń regularnych. Coś takiego jak ereg tylko znajduje adresy. Proszę o pomoc smile.gif
kossa
Użyj preg_match_all" title="Zobacz w manualu PHP" target="_manual

a w wyrażeniu regularnym które podasz funkcji to oznacz że ciąg ma się zaczynać od <a a kończyć na </a> i masz wszystko jak na tacy smile.gif

Łukasz
drPayton
http://forumphp.nq.pl/index.php?showtopic=2054

albo (o ile się nie walnąłem):
  1. <?php
  2. preg_match_all('/<a[[:space:]].*?href="([^"]+)".*?>[^<]+</a>/is', $source, $matches);
  3. ?>
tree
Niestety nie działa, czasem wyciąga cały znacznik, a czasem pół strony i nie wiem co mam z tym zrobić. Chciałbym mieć w wyniku tylko same adresy stron, a nie pół kodu ze strony tak jak to jest teraz sad.gif
drPayton
  1. <?php
  2. preg_match_all("/(href)([[:space:]]*=[[:space:]]*)('|\")(.*?)('|\")/is", $source, $matches, PREG_SET_ORDER);
  3. ?>

Wyszukuje wartości spomiędzy atrybutów href. Regexp autorstwa mojego kumpla.
Przykładowa postać tablicy $matches:
Kod
Array
(
    [0] => Array
        (
            [0] => href="http://onet.pl"
            [1] => =
            [2] => "
            [3] => http://onet.pl
            [4] => "
        )

    [1] => Array
        (
            [0] => href="http://wp.pl/"
            [1] => =
            [2] => "
            [3] => http://wp.pl/
            [4] => "
        )

    [2] => Array
        (
            [0] => href="http://google.com"
            [1] => =
            [2] => "
            [3] => http://google.com
            [4] => "
        )

)

Można ją ograniczyć kasując niepotrzebne nawiasy w regexp'ie, ale sam się już w to pobaw winksmiley.jpg
tree
Dzięki za porady
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.