【问题标题】:drupal input filter changes only one patterndrupal 输入过滤器只改变一种模式
【发布时间】:2011-06-21 12:58:45
【问题描述】:

我的自定义drupal模块提供了自定义输入过滤器,功能如下:

函数 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);

}

如您所见,我使用该模块对 rte 中输入的图像进行 cdn 文件服务器更改(我使用 tinymce)。

问题是,我的过滤器只改变了给定文本的最后一个模式。我不明白为什么会发生这种情况,有什么想法吗?

【问题讨论】:

    标签: drupal preg-replace cdn fileserver


    【解决方案1】:

    我认为问题在于您的 .* 过于贪婪,并且选择了大部分文本 - 从第一个 '

    尝试在第二个模式 ~ 之后添加 pcre 模式修饰符 U(即大写 U)。这将反转模式的 .* 部分,使其变得不贪婪,并匹配尽可能少的字符。

    【讨论】:

      猜你喜欢
      • 2011-03-07
      • 1970-01-01
      • 2011-07-25
      • 1970-01-01
      • 2016-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-27
      相关资源
      最近更新 更多