preg_quote
funkcja
Poprzedza metaznaki wyrażeń regularnych ukośnikiem odwrotnym, dzięki czemu ciąg można bezpiecznie użyć jako literalny wzorzec.
preg_quote(string $str, ?string $delimiter = null): string
Kiedy budujesz wyrażenie regularne dynamicznie — na przykład na podstawie danych wpisanych przez użytkownika — musisz zabezpieczyć znaki specjalne, takie jak ., *, (, ), [ czy $. preg_quote zrobi to za ciebie, poprzedzając każdy metaznak odwrotnym ukośnikiem.
Opcjonalny drugi argument $delimiter pozwala również uciec ogranicznikowi wzorca. Jeśli używasz ukośnika / jako ogranicznika w swoich wyrażeniach (/wzorzec/), przekaż '/' — wtedy ewentualne ukośniki w ciągu też zostaną poprzedzone ukośnikiem odwrotnym.
<?php
declare(strict_types=1);
$fraza = 'cena (brutto)';
$wzorzec = '/' . preg_quote($fraza, '/') . '/i';
echo $wzorzec; // wynik: /cena \(brutto\)/i
$wynik = preg_match($wzorzec, 'Cena (brutto): 123 zł');
echo $wynik; // wynik: 1