Входной фильтр drupal меняет только один шаблон
Мой пользовательский модуль drupal предоставляет собственный фильтр ввода, функция которого приведена ниже:
function my_custom_filter ($ text) {
return preg_replace('~<img(.*)src=\"/sites/default/files/(.*)\"~', '<img$1src="' . variable_get('static_url', "http://fileserver.com") ."/". file_directory_path() . "/" . '$2' . "\"", $text);
}
Как вы можете видеть, я использую модуль для изменения файлового сервера cdn для изображений, введенных в rte (я использую tinymce).
Проблема в том, что мой фильтр изменяет только последний шаблон данного текста. Я не понимаю, почему это происходит, какие-либо идеи?
1 ответ
Я думаю, проблема в том, что ваш.* Слишком жадный и выбирает большую часть текста - от первого '
Попробуйте добавить модификатор шаблона pcre U (это заглавная U) после второго шаблона ~. Это инвертирует.* Части шаблона, чтобы стать несвязным и соответствовать как можно меньшему количеству символов.