Экранировать спецсимволы внутри регулярного выражения
Есть задача, выполнить вот такой реплейс:
$settings['main_categories_separator'] = '/'; // но тут могут быть разные разделители: / , . * & \ |
$value['main_category'] = 'Фонари/Фонари Наключные';
$value['main_category'] = preg_replace('/^'.$settings['main_categories_separator'].'/iu', '', $value['main_category']);
Подскажите как можно сделать, что бы спецсимволы из переменной $settings['main_categories_separator'] экранировались автоматически, а не были частью регулярки.
Ответы (1 шт):
Автор решения: Алексей Сердюк
→ Ссылка
preg_quote — Экранирует символы в регулярных выражениях
$value['main_category'] = preg_replace('/^'.preg_quote($settings['main_categories_separator'], "/").'/iu', '', $value['main_category']);