Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]preg_match_all, durny bład
--obcy--
post
Post #1





Goście







Hej,

Problem jest tego typu, mam text: (testowy)
  1. <a class=s target=_blank href='sdfsdfsdf'>sdfsdfsdf</a><a class=s target=_blank href='sdfsdfsdfq'>sdfsdfsdfq</a><a class=s target=_blank href='sdfsdfsdfw'>sdfsdfsdfw</a><a class=s target=_blank href='sdfsdfsdf31'>sdfsdfsdf31</a><a class=s target=_blank href='sdfsdfsdf23'>sdfsdfsdf23</a><a class=s target=_blank href='sdfsdfsdf'>sdfsdfsdf</a><a class=s target=_blank href='sdfsdfsdf1'>sdfsdfsdf1</a><a class=s target=_blank href='sdfsdfsdf32'>sdfsdfsdf32</a><a class=s target=_blank href='sdfsdfsdf'>sdfsdfsdf</a><a class=s target=_blank href='sdfsdfsdf3'>sdfsdfsdf3</a>


i preg_match_all
preg_match_all("|<a class=s target=_blank href='(.+)'>(.+)<\/a>|U", $data, $links, PREG_SET_ORDER);
i zamiast zaznaczyc kazdy link oddzielnie typu:
sdfsdfsdf - sdfsdfsdf
sdfsdfsdfq - sdfsdfsdfq
itd.

to zaznacza mi całość, od pierwszego hrefa, do ostatniego zakonczenia </a>


mozna to jakos oddzielnie wyciagnac ? nie bardzo znam wyrazenia regularne, przynajmniej nie na tyle

Pozdr, dzieki
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




A wyświetl sobie zawartość $links przez var_dump" title="Zobacz w manualu PHP" target="_manual. Wg mnie, wszystko jest ok.
Go to the top of the page
+Quote Post
ayeo
post
Post #3





Grupa: Przyjaciele php.pl
Postów: 1 202
Pomógł: 117
Dołączył: 13.04.2007
Skąd: 127.0.0.1

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


Prawdopodobnie chodzi o zachłanność. Użyj "?" w swoim patternie. Pozdrawiam!
Go to the top of the page
+Quote Post
nevt
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

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


  1. <?php
  2. preg_match_all("|<a class=s target=_blank href='(.+?)'>(.+?)</a>|U", $data, $links, PREG_SET_ORDER);
  3. ?>

a przy okazji, atrybuty tagów HTML umieszczamy w "cudzysłowach" a nie w 'apostrofach' ... więc tak naprawdę powinno być:
  1. <?php
  2. preg_match_all('|<a class=s target=_blank href="(.+?)">(.+?)</a>|U', $data, $links, PREG_SET_ORDER);
  3. ?>
Go to the top of the page
+Quote Post
--obcy--
post
Post #5





Goście







dzieki wielkie za pomoc!

pozdrawiam
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: 22.08.2025 - 23:57