Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] problem z wyrażeniem regularnym
xrtxgabv
post
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 11.03.2011

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


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

Ten post edytował xrtxgabv 28.03.2011, 13:13:47
Go to the top of the page
+Quote Post
kinder
post
Post #2





Grupa: Zarejestrowani
Postów: 39
Pomógł: 2
Dołączył: 15.03.2010

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


Pokombinuj dodając do wyrażenia regularnego adresu na samym początku i na końcu coś w rodzaju:
[^'][^"]

tzn "nie wystepuje"
Go to the top of the page
+Quote Post
xrtxgabv
post
Post #3





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 11.03.2011

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


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 :/
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 02:16