Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] wyrażenia regularne
propage
post
Post #1





Grupa: Zarejestrowani
Postów: 330
Pomógł: 0
Dołączył: 25.01.2008

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


Problem - chce napisać funkcje, która będzie podmieniąc daną fraze na link, jednak problem jest taki, żeby nie podmieniać danej frazy jeśli jest ona już linkiem.

Dla przykładu najpierw chcemy podmienić "piłki lekarskie", a potem "piłki".

dla fraz "piłki lekarskie" zrobi się link, chciałbym aby przy drugim wywołaniu tej finkcji nie robił się kolejny link dla "piłki".

wyrażenie, które napisałem ma taką postać
  1. $new = preg_replace('/[^>]('.$name.')[^<\/a>]/i', '<a href="'.$link.'" title="'.$name.'">$1</a>', $old);


Zabezpiecza ono przed tym, aby dra razy nie podmienić tego samego linka, ale nie przed tym, sytuacją którą napisałem powyżej. Czyli funkcja nie powinna robić linka z podanej frazy, jeśli na początku tej frazy jest ">" lub na końcu tej frazy jest "</a>"

Innymi słowy warunek działa teraz tak "JEŚLI" [^>] "I" ('.$name.') "I" [^<\/a>]
A powinien działać tak mniej więcej tak "JEŚLI" [^>] (na początku) LUB [^<\/a>] (na końcu) "I" ('.$name.')

Ten post edytował propage 29.01.2011, 10:35:49
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: 21.12.2025 - 16:50