Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Wyrażenie regularne i wyświetlenie wyników
Forum PHP.pl > Forum > Przedszkole
PawelC
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
wookieb
Czy nie latwije byloby ci parsowac url za pomoca http://php.net/parse_url ?
PawelC
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.
Maxik
Do sprawdzenia masz filter_var" title="Zobacz w manualu PHP" target="_manual z flagą FILTER_VALIDATE_URL
PawelC
No tak, tylko czemu jak nawet zmienna z treścią jest pusta to cały czas mi wywala 5-7 razy array
bmL
  1. <?php
  2. foreach($wynik as $key){
  3. print_r($key);
  4. }
  5. ?>

Może tak?
wookieb
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. ?>
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.