Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Wyrażenie regularne i wyświetlenie wyników
PawelC
post
Post #1





Grupa: Zarejestrowani
Postów: 1 173
Pomógł: 121
Dołączył: 24.09.2007
Skąd: Toruń

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


Hej smile.gif
Chcę stworzyć walidacje adresu www, i mam takie wyrażenie:
  1. <?php
  2. preg_match_all ('/^(http|https|ftp)://(([A-Z0-9][A-Z0-9_-]*)(.[A-Z0-9][A-Z0-9_-]*)+)(:(d+))?//i', $site, $wynik);
  3. print_r($wynik);
  4. ?>

I wszystko ładnie pięknie tylko cały czas zamiast znalezionych adresów wyświetla mi:
Kod
Array (     [0] => Array         (         )      [1] => Array         (         )      [2] => Array         (         )      [3] => Array         (         )      [4] => Array         (         )      [5] => Array         (         )      [6] => Array         (         )  )

Gdzie popełniam błąd? Chcę aby wyświetlał znalezione adresy. Robię też tak:
  1. <?php
  2. foreach($wynik as $key){
  3. echo $key;
  4. }
  5. ?>

I wywala mi:
Kod
ArrayArrayArrayArrayArrayArrayArray

Chodzi mi o to aby w podanym tekście znalazł adresy domen w postaci http://www.adres.pl lub http://www.adres-cos.pl/
Co najdziwniejsze nawet jak podam adres domeny której niema to też mi wywala 7x array

Ten post edytował ExPlOiT 31.05.2009, 22:25:34
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
wookieb
post
Post #2





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




Czy nie latwije byloby ci parsowac url za pomoca http://php.net/parse_url ?


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





Grupa: Zarejestrowani
Postów: 1 173
Pomógł: 121
Dołączył: 24.09.2007
Skąd: Toruń

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


No tak, tylko ja pisze w manualu:


Cytat
Funkcja przetwarza URL i zwraca tablicę asocjacyjną zawierającą każdy z komponentów wchodzących w skład URL.Ta funkcja nie służy do sprawdzania poprawności podanego URL, tylko rozbija go na podane niżej części. Częściowe URLe także są obsługiwane parse_url() postara się przetworzyć je poprawnie.

A mi chodzi o uzyskanie całego adresu url z wpisanego tekstu, a później dodanie go do bazy.

Ten post edytował ExPlOiT 31.05.2009, 22:32:06
Go to the top of the page
+Quote Post
Maxik
post
Post #4





Grupa: Zarejestrowani
Postów: 726
Pomógł: 129
Dołączył: 10.01.2008
Skąd: Gdańsk

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


Do sprawdzenia masz filter_var" title="Zobacz w manualu PHP" target="_manual z flagą FILTER_VALIDATE_URL


--------------------
Pomogłem? Kliknij przycisk Pomógł pod pomocnym Ci postem.
http://maxik.me/
Go to the top of the page
+Quote Post
PawelC
post
Post #5





Grupa: Zarejestrowani
Postów: 1 173
Pomógł: 121
Dołączył: 24.09.2007
Skąd: Toruń

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


No tak, tylko czemu jak nawet zmienna z treścią jest pusta to cały czas mi wywala 5-7 razy array
Go to the top of the page
+Quote Post
bmL
post
Post #6





Grupa: Zarejestrowani
Postów: 301
Pomógł: 25
Dołączył: 15.07.2007
Skąd: Olsztyn

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


  1. <?php
  2. foreach($wynik as $key){
  3. print_r($key);
  4. }
  5. ?>

Może tak?

Ten post edytował bmL 1.06.2009, 02:38:06


--------------------
Tutaj miał być jakiś mądry tekst. Miał być... No ale jest głupi tekst.
Go to the top of the page
+Quote Post
wookieb
post
Post #7





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




Bo tak zawsze jest w preg_match_all
To czy tekst spelnil wyrazenie regularne sprawdza sie nastepujaco
  1. <?php
  2. {
  3. // wszystko ok
  4. }
  5. ?>


--------------------
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: 19.08.2025 - 16:09