Использую такой код:
foreach ($propertyValues as $value) {
if($value) {
$pattern = preg_quote('/'.$value.'/u');
$source = preg_replace($pattern, '', $source, 1);
}
}
Он рабочий, но иногда вылезают не совсем понятные Warning:
При $pattern = '/107/105/u';
Вылезает Warning: preg_replace(): Unknown modifier '1'
При $pattern = "/TL/TT/u";
Вылезает Warning: preg_replace(): Unknown modifier 'T'
Почему так? Как убрать варнинги?
preg_quote нужно применить к переменной, а не ко всему регулярному выражению. К тому же, так как вы решили использовать знак косой черты в качестве разделителя, его надо передать как второй аргумент в эту функцию:
$pattern = '/' . preg_quote($value, '/') . '/u';
$source = preg_replace($pattern, '', $source, 1);
Продвижение своими сайтами как стратегия роста и независимости