【问题标题】:Insert between and after with regex在正则表达式之间插入
【发布时间】:2013-08-18 10:23:30
【问题描述】:

我正在尝试找到在 div 中插入 html 代码中的所有图像的解决方案。

目前它们像这样以字符串形式存储在 MySQL 数据库中

Some text <img src="link" alt="">

我想用&lt;div class="bilde"&gt;&lt;img src="link" alt=""&gt;&lt;/div&gt;替换所有这些图片

我试过了

function bilde($saturs) {
  preg_replace('<img(.*?)>', '<div class="bilde"><img$1></div>', $saturs);
}

和许多其他解决方案,但正则表达式并不是我真正的强项。

【问题讨论】:

  • 是否要更新存储在数据库中的所有字符串?
  • 不,我只想编辑输出,在 div 中插入图片,用 css 格式化它们。
  • 很公平。我发布 MySQL 命令的想法对你没有帮助! :)

标签: php mysql regex


【解决方案1】:

您没有使用正则表达式分隔符。试试这个代码:

preg_replace('/<img(.*?)>/is', '<div class="bilde"><img$1></div>', $saturs);

我添加了i(忽略大小写)和s(DOTALL)以使您的正则表达式更有用。

但是请记住,使用正则表达式并不总是解析 HTML 的最佳方式。

【讨论】:

  • 它的作用相同,没有任何输出,也没有错误代码。
  • 你需要使用preg_replace的返回值。
  • @user2454075,你是什么意思?上面的代码就像一个魅力......你确定你什么都没忘记吗?使用函数检查this demo
  • 是的,上面的代码运行良好。但不知何故,我的函数在标题之前打印文本,在代码中打印在文本之前哦,我的错误是没有返回任何内容。谢谢!现在一切正常。
  • 如果这个答案帮助您解决了问题,请考虑将其标记为“已接受”,以便以后遇到类似问题的用户能够轻松看到。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多