Экранировать спецсимволы внутри регулярного выражения

Есть задача, выполнить вот такой реплейс:

$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']); 
→ Ссылка