После прочтения здесь и после попытки preg_quote я понимаю ошибку и понимаю, что должен использовать разделители.
Проблема в том, что одним из разделителей является косая черта, которая также является частью строки, которую я пытаюсь сравнить.Я не понимаю, как исправить мою проблему.Где я могу поместить разделители в мой код?
Я использую preg_match для идентификации данного продукта с именем продукта следующим образом:
if (preg_match("/\b$productcolor\b/i", "$searchProductName")) {
//do something
}
Это хорошо работает, если имя продукта выглядитнапример:
$searchProductName = Yupoong 6606 Retro Trucker Cap (Red);//$_POST
$productcolor = 'Red';//$_POST
Preg_match
возвращает неизвестный модификатор, если в имени есть косая черта, например:
$searchProductName = Yupoong 6606 Retro Trucker Cap (Rust Orange/ Khaki);//$_POST
$productcolor = 'Rust Orange/ Khaki';//$_POST
Я пытаюсь решить эту проблему, устранивпрямая косая черта выглядит так:
$productColor = str_replace('/', ' ', $productcolor);
Это вернет строку, подобную этой Rust Orange Khaki
.Но при удалении косой черты preg_match
не соответствует цвету в названии.
Как я могу решить эту проблему?Имейте в виду, НЕ все продукты имеют косую черту в названии.Некоторые из них имеют один цвет.