Входной фильтр drupal меняет только один шаблон - PullRequest
1 голос
/ 04 февраля 2011

мой пользовательский 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 Ответ

1 голос
/ 04 февраля 2011

Я думаю, проблема в том, что ваш. * Слишком жадный и выбирает большую часть текста - от первого 'image

Попробуйте добавить модификатор шаблона pcre U (это заглавная U) после второго шаблона ~. Это инвертирует. * Части шаблона, чтобы стать несвязным и соответствовать как можно меньшему числу символов.

...