php - preg_replace 所有 <img> 参数

标签 php image html-parsing preg-replace preg-match

我已将 WYSIWYG 编辑器从旧版本升级到最新版本。图像尺寸的保存方式有所不同。旧版本的编辑器用于为图像标签添加宽度和高度参数。新编辑器创建样式参数并将宽度和高度添加为样式。

我有一个 preg_replace 函数,我可以使用它来包装 <a><img> 周围标记.

当前的 preg_replace 不再起作用,因为新编辑器将宽度和高度保存在样式参数中。

预替换:

$Content = preg_replace('#<img(.*?)src="([^"]*/)?(([^"/]*)\.[^"]*)"([^>]*?)>((?!</a>))#', '<a rel="group" class="fancybox fancy" title="" href="$2$3"><img$1src="$2$3"></a>', $Content);

如果知道的话,新编辑器会像这样存储图像:

<img alt="" src="" style="" />

而旧的编辑器是这样存储图像的:

<img src="" width="404" height="228" alt="" />

如何重构我的 preg_replace 以复制完整的样式元素?向后兼容也很酷。

感谢您的宝贵时间:)

最佳答案

试试这个:

$regex = '#<img([^>]*) src="([^"/]*/?[^".]*\.[^"]*)"([^>]*)>((?!</a>))#';
$replace = '<a rel="group" class="fancybox fancy" title="" href="$2"><img$1 src="$2"$3></a>';
$Content = preg_replace($regex, $replace, $Content);

关于php - preg_replace 所有 <img> 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16983236/

相关文章:

Android - 将编码图像 (1 - 2 MB) 上传到 base64 到服务器 HTTP POST - JSON

python - 也获取标签之外的文本

php - Silverstripe CMS 是否像看上去那样易于部署、维护和开发?

php - Mysql结合更新查询

php - Firebug 显示位于 "wp-login.php #3 (line 25)"中的 CSS 源代码。找不到这个文件

javascript - 从 HTML 片段导入 CSS 样式

python - 使用 BeautifulSoup,如何仅从特定选择器中获取文本而没有子项中的文本?

php - Wordpress -> 角色订阅者是否显示图像?

php - 使用 PHP 将特定的 RGB 颜色替换为另一个图像

php - 按建议调整图像大小,直到满足所需的文件大小