Ce face preg_quote
Caracterele . \ + * ? [ ^ ] $ ( ) { } = ! < > | : - # / au sens special în expresiile regulate. Dacă pui într-un șablon un text primit de la utilizator (un termen de căutare, un nume de fișier), preg_quote le transformă în caractere obișnuite.
Dă ca al doilea parametru delimitatorul folosit în șablon (de obicei "/"), ca să fie și el protejat.
Parametri
| Parametru | Descriere |
|---|---|
$str |
Textul de protejat. |
$delimiter |
Opțional. Delimitatorul șablonului, protejat și el. |
Ce returnează
Textul cu caracterele speciale precedate de \.
Exemple
Exemplul 1: Caracterele speciale protejate
<?php
echo preg_quote("Preț: 9.99$ (redus)") . "\n";
echo preg_quote("https://dexblog.ro/", "/");
Rezultat
Preț\: 9\.99\$ \(redus\)
https\:\/\/dexblog\.ro\/
Exemplul 2: Evidențierea unui termen căutat
Fără preg_quote, punctul din „3.5” ar însemna „orice caracter”.
<?php
$cautare = "3.5";
$text = "Versiunea 3.5 nu este 305 sau 3x5.";
echo preg_replace('/' . preg_quote($cautare, "/") . '/', "<mark>$0</mark>", $text);
Rezultat
Versiunea <mark>3.5</mark> nu este 305 sau 3x5.
Greșeli frecvente
- Nu dai delimitatorul ca al doilea parametru și un
/din text închide șablonul mai devreme. Primești avertismentulUnknown modifier.
Comenzi înrudite
preg_match: Verifică dacă un text se potrivește cu o expresie regulată și extrage prima potrivire.preg_replace: Înlocuiește toate potrivirile unei expresii regulate cu alt text.addslashes / stripslashes: Pune o bară inversă (\) înaintea ghilimelelor și a barelor inverse. stripslashes face operația inversă.