Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z wyrażeniem regularnym
Forum PHP.pl > Forum > PHP
munky
Witam,

Mam problem z wyrażeniem regularnym znajdującym adresy www w tekście, które przychodzi postem.

  1. <?php
  2. $wyrazenie='/<a[^>]+?hrefs*?=s*?("|')?(.*?)(?(1)1[^>]*>|(?:s[^>]*>|>))(.*?)</a>/si';
  3.  
  4.  elseif (preg_match('/^(http(s?)://|ftp://{1})((w+.){1,})w{2,}$/i', $eintrag)) $komunikat='';
  5. ?>


jak wpisuję www.strona.pl czy http://www.strona.pl jest ok ale jak dodam dowolny string przed lub po adresie to przestaje działać :/

Dziękuję za pomoc.

Pozdrawiam
munky
Kicok
1. Poczytaj sobie w jakimś kursie wyrażeń regularnych do czego służy: ^ i $
2. \w nie pasuje do slashy, lepiej użyć \S (czyli "wszystko co nie jest białym znakiem")

  1. <?php
  2.  
  3. $tekst = 'saf f sa <a href="http://www.strona.pl/asd/index.php?var=val&var2=val2&var3=%20var3%20" target="_blank">http://www.strona.pl/asd/index.php?var=val...var3=%20var3%20</a> asd ads';
  4.  
  5. if( preg_match( '#(https?://|ftp://)(S+)#i', $tekst, $sub ) ) {
  6. echo $sub[1] . $sub[2];
  7. }
  8. else {
  9. echo 'Nie znaleziono';
  10. }
  11.  
  12. ?>
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.