Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] PREG - potrzebne wyrażenie
Vengeance
post
Post #1





Grupa: Zarejestrowani
Postów: 657
Pomógł: 2
Dołączył: 15.08.2003
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Witajcie.

Już nie raz prosiłem forumowiczów o "gotowca". Teraz także oto prosze i pewnie będę to robił jeszcze nie raz :]

Co jak co, ale z wyrażeń regularnych jestem noga, ale czasem coś potrzeba.

Dane wejściowe:
Kod
<a href="http://costam.pl">costam</a>
<a href="http://www.wazne.org">To Jest Wazne</a>
<a href="http://costam2.net">costam2</a>
<a href="http://www.wazne.org">Kolejna Wazna Sprawa</a>


Dane wyjściowe (wyciągnięte przez wyrażenie regularne)
Kod
array (
   [0] = '<a href="http://www.wazne.org">To Jest Wazne</a>'
   [1] = '<a href="http://www.wazne.org">Kolejna Wazna Sprawa</a>'
)


Opis słowny:
Do dyspozycji mam jedynie adres strony WWW. Potrzebuje, by wyrażenie regularne wyciągnelo wszystkie odnosniki z tekstu do tej wlasnie strony.
Czyli wszystkie bloki <a href="podana strona">xxx</a>. Musze jednak wziac pod uwage, ze takie hiperlacze moze miec takze atrybuty target, title itd. Czyli takie hiperlacze tez ma byc znajdywane:
<a title="siema" href="podana strona" target="_blank">costam</a>

Próbowałem coś samemu... doszedłem do wzoru:
preg_match_all('#<a.*href="' . $sAdres . '".*>.*<\/a>#s', $sZawartoscStrony, $aWynik);

jednak przy wielu hrefach się mocno pierniczy :/ Przy jednym dziala ;]

Pozdrawiam i z góry dziękuje temu kto zechce pomóc.
Go to the top of the page
+Quote Post
FiDO
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

Ostrzeżenie: (0%)
-----


Dodaj flage U do tego wyrazenia. Dodatkowo dla pewnosci, ze zaden dziwny adres sie nie wylozy wypadaloby przepuscic $sAdres przez preg_quote" title="Zobacz w manualu PHP" target="_manual przed wstawieniem tego do wyrazenia.
Go to the top of the page
+Quote Post
Vengeance
post
Post #3





Grupa: Zarejestrowani
Postów: 657
Pomógł: 2
Dołączył: 15.08.2003
Skąd: Łódź

Ostrzeżenie: (0%)
-----


preg_quote() już jest używane.
Obecnie mam taki wzór:
Kod
preg_match_all('#(<a(.*?)href="' . $sAdres . '"(.*?)>(.*?)<\/a>)#is', $sZawartoscStrony, $aWynik);      


Dane wejściowe
Kod
<html>
<head>
<title>Sajt 4</title>
</head>
<body>
   <h1>To jest Sajt 4</h1><br />
   <a href="http://costam.pl">costam</a>
<a href="http://reklama.org">To Jest Wazne</a>
<a href="http://costam2.net">costam2</a>
<a href="http://reklama.org">Kolejna Wazna Sprawa</a>
</body>
</html>


Dane wyjściowe:
Kod
Array
(
    [0] => Array
        (
            [0] => <a href="http://costam.pl">costam</a><a href="http://reklama.org">To Jest Wazne</a>
            [1] => <a href="http://costam2.net">costam2</a><a href="http://reklama.org">Kolejna Wazna Sprawa</a>
        )
)


Czyli nadal dokleja jakieś śmieci, linki które w wyniku znaleść się nie powinny :/
Go to the top of the page
+Quote Post
FiDO
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

Ostrzeżenie: (0%)
-----


Zmien #(<a(.*?)href na #(<a([^>]*?)href

Ten post edytował FiDO 7.05.2005, 18:25:29
Go to the top of the page
+Quote Post
Vengeance
post
Post #5





Grupa: Zarejestrowani
Postów: 657
Pomógł: 2
Dołączył: 15.08.2003
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Dziekuje Ci bardzo :*
Ja tych PREGów nie rozumiem i chyba nigdy nie pojme ;P
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 18.09.2025 - 04:27