Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] problem z wyrażeniem regularnym
Forum PHP.pl > Forum > Przedszkole
xrtxgabv
Witam,
potrzebuję zamienić adresy na linki
robię to takim wyrażeniem

  1. $z = array(
  2. '/[a-zA-Z]{1,2}tp[s]?:\/\/[a-zA-Z0-9\-.]+\.[a-zA-Z]{2,4}[\/]?[^\n\s]*/',
  3. '/([^\/]{2})(www\.[a-zA-Z0-9\-.]+\.[a-zA-Z]{2,4}[\/]?[^\n\s]*)/'
  4. );
  5. $na = array(
  6. '<a href="\0">\0</a>',
  7. '\1<a href="http://\2">\2</a>'
  8. );
  9.  
  10. $w = preg_replace($z, $na, $w);


wszystko ładnie działa ale pojawił się problem jeśli mam
  1. <img src="http://jakis.adres.pl/obrazek.png" />


wtedy też zamienia mi adres na linka a chciałbym zrobić tak że wtedy zostawiło bez zmian.

Jak mogę zmodyfikować te wyrażenia żeby mi nie zamieniał jeśli przed adresem jest " lub '
próbowałem już na kilka sposobów i zawsze albo mi nie zamienia wcale albo zawsze zamienia

z góry dzięki za pomoc
kinder
Pokombinuj dodając do wyrażenia regularnego adresu na samym początku i na końcu coś w rodzaju:
[^'][^"]

tzn "nie wystepuje"
xrtxgabv
próbowałem już na kilka sposobów ale zawsze albo pomijał też te bez " na początku albo łapał wszystkie albo pomijał wszytskie.
samo [^"] czy podobne postacie niestety nie zadziałały :/
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.