У меня есть следующий кодpreg_replace не заменяя AJAX
$text = '["{!Account__!http://localhost/MF/Public/__NotActivated}","email"]';
$replcmnt = array(
'#{!Account__!http:\/\/localhost\/MF/Public\/__NotActivated}#' => 'text to replace'
);
$text = preg_replace(array_keys($replcmnt),$replcmnt,$text);
Мне нужен выход, чтобы быть '["text to replace","email"]'
, но по какой-то причине замены не заменяет. Я нахожу это чрезвычайно странным, поскольку это работает, когда я загружаю страницу, но не работает, если я запускаю ее с помощью запроса ajax. Oo
Я также должен отметить, что если я удалю любые косые черты из внутренней части между подчеркиваниями, замените происходит. Поэтому проблема должна быть чем-то с этими косыми чертами.
ex.
$replcmnt = array(
'#{!Account__!http:-localhost-MF-Public-__NotActivated}#' => 'text to replace'
);
Вышеуказанное будет заменено из-за отсутствия косых черенок, я полагаю.
Любая помощь очень ценится
EDIT:
Вот данные прямо перед замены:
$text
["{!Account__!http:\/\/localhost\/MF\/Public\/__NotActivated}","email"]
$replcmnt
Array
(
[#{!Account__!http:\/\/localhost\/MF\/Public\/__NotActivated}#] => some long text
)
Что произойдет, если вы удалите ненужные обратные косые черты в регулярном выражении? – Barmar
Почему вы используете 'preg_replace', а не' str_replace'? В шаблоне нет символов регулярного выражения. – Barmar
На самом деле, я удивлен, что он не сообщает об ошибке, потому что '{}' являются специальными в регулярных выражениях. – Barmar