Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Wyrażenia regularne - amp w nawiasach
gsk
post
Post #1





Grupa: Zarejestrowani
Postów: 129
Pomógł: 4
Dołączył: 21.02.2004
Skąd: z domu

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


Witam,

Chce dopuścić w ciągu preg_replace'm wszystkie literki, cyferki, spacje i odstępy a na dodatek chcę zostawić <&>
Cała reszta ma zostać usunięta.
Siedzę już dłuższą chwilę i nie mogę tego wyciągnąć. Udaje mi się w drugą stronę tj. (<&>)|(\w)|(\s)|(\d) ale nie wiem jak to zanegować (IMG:style_emoticons/default/smile.gif)
Ma ktoś jakiś pomysł?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Prawdopodobnie da się to rozwiązać korzystając z look ahead i look behind: http://www.php.net/manual/en/regexp.reference.assertions.php.

Jednak prawdopodobnie dużo lepszym, tj. bardziej czytelnym i łatwiejszym w modyfikowaniu będzie w skorzystanie z preg_replace_callback, wyłapanie wszystkich niedozwolonych znaków wraz ze znakiem poprzedzającym i następującym, w callbacku sprawdzenie czy nie mamy aby przypadkiem do czynienia z przypadkiem szczególnym (<&>) i zwrócenie odpowiednio: <&> w przypadku wyłapania <&>, bądź znaku poprzedzającego i następującego (bez samego znaku zakazanego).

Ten post edytował Crozin 18.03.2013, 12:34:00
Go to the top of the page
+Quote Post

Posty w temacie


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: 9.10.2025 - 14:20