У вас есть три вещи неправильно:
- Отсутствующие delimiters из регулярного выражения (так и должно быть:
"~€£$~"
)
$
- это переменное имя статистики в php (также в двойных кавычках), поэтому либо берите его с \
: "~€£\$~"
, либо используйте '
(один Quot) '~€£$~'
$
в PCRE выражениях, ответственных за конец строки meta character для этого он должен быть экранирован так окончательное регулярное выражение будет выглядеть следующим образом: "~€£\\\$~"
или: '~€£\\$~'
И еще одна вещь, почему выиграл» т вы используете «немой строка подстановки» (например strtr()
), которые должны иметь более высокую производительность, и это сделает более понятным то, что вы хотите сделать, например:
$test = "sum € sum 2 £ sum 3$";
$repl = array(
'€' => '',
'£' => '',
'$' => '');
echo strtr($test, $repl) . "\n";
A FAIK str_replace()
будет перебирать трибовую строку 3 раза, strtr()
только один раз.
Опубликовать всю ошибку –
Вы не используете dilimiters в 'preg_replace()' –