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
📘 Naucz się w lekcji →