Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] preg_match powtarzające się wartości
tomekmvr
post
Post #1





Grupa: Zarejestrowani
Postów: 116
Pomógł: 2
Dołączył: 11.09.2006

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


Witam

mam kod
  1. $c = '<a href="http://adres-strony.pl">';
  2. if(preg_match_all('#(http://[-/a-zA-Z0-9,_.?&]+)#',$c,$matches))
  3. {
  4. print_r($matches);
  5. }


preg_match wyszukuje mi linków tekście i to działa mi dobrze, ale dostaje duplika wartości w tablicy
Cytat
Array ( [0] => Array ( [0] => http://adres-strony.pl ) [1] => Array ( [0] => http://adres-strony.pl ) )


Można jakoś zrobić aby adres był dodawany do tablicy jeden raz? a nie jak tu dwa razy

Ten post edytował tomekmvr 7.09.2010, 16:54:20


--------------------
Go to the top of the page
+Quote Post
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Użyj samego preg_match


--------------------
Go to the top of the page
+Quote Post
Pawel_W
post
Post #3





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

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


albo array_unique
Go to the top of the page
+Quote Post
tomekmvr
post
Post #4





Grupa: Zarejestrowani
Postów: 116
Pomógł: 2
Dołączył: 11.09.2006

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


same preg_match za wiele nie zmienia bo dalej dostaje duplikat i nie wiem dlaczego tak się dzieje, co array_unique pomaga musi mi to wystarczyć

Dzięki
Pozdrawiam


--------------------
Go to the top of the page
+Quote Post
Noidea
post
Post #5





Grupa: Zarejestrowani
Postów: 226
Pomógł: 61
Dołączył: 20.08.2010

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


Cytat
dostaje duplikat i nie wiem dlaczego tak się dzieje


preg_match(_all) zwraca pod indeksem zerowym dopasowanie całego wzorca, a pod kolejnymi dopasowania nawiasów okrągłych. Jako że u ciebie cały wzorzec jest w nawiasie okrągłym, to pokazuje ci się to samo dwa razy.


  1. $c = '<a href="http://adres-strony.pl">';
  2. if(preg_match_all('#http://[-/a-zA-Z0-9,_.?&]+#',$c,$matches))
  3. {
  4. print_r($matches);
  5. }


Cytat
Array ( [0] => Array ( [0] => http://adres-strony.pl ) )


--------------------
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 21.08.2025 - 14:00