正则表达式模式匹配所有图像与替换持有自我 PHP 功能

发布于 2024-10-14 08:09:27 字数 646 浏览 3 评论 0原文

我有一个 preg_replace 函数来查找所有图像并将它们包装在具有不同类的

标记中,这取决于图像源:

$pattern = '"/<img[^>]*src="([^"]+)"[^>]*alt="([^"]+)"[^>]*>\i"e';
$replacement = '"<figure class=\"" . check($1) . "\"><img src=\"$1\" alt=\"$2\" /></figure>"';
preg_replace($pattern, $replacement, $content);

因此,要放置正确的类,我希望使用图像源参数调用函数 check($source) 。这样,函数就会返回必要的类。 正如您在上面的代码中看到的,我正在尝试使用 e 修饰符,但似乎不起作用。

  1. 我是否必须修改我的模式和替换?
  2. 如果我的 $content 变量中有很多图像,我是否应该使用 preg_replace_all 查找所有图像?

I have a preg_replace function to find all images and wrap them inside <figure> tag with different class, which depends on image source:

$pattern = '"/<img[^>]*src="([^"]+)"[^>]*alt="([^"]+)"[^>]*>\i"e';
$replacement = '"<figure class=\"" . check($1) . "\"><img src=\"$1\" alt=\"$2\" /></figure>"';
preg_replace($pattern, $replacement, $content);

Therefore, to put a right class, I wish to call a function check($source) with image source parameter. By this way, function is going to return necessary class.
As you can see in a code above, I am trying to use e modifier, but it seems it doesn't work.

  1. Do I have to modify my pattern and replacement?
  2. Should I use preg_replace_all to find all the images, if they are many inside my $content variable?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

作业与我同在 2024-10-21 08:09:27

You can use preg_replace_callback() for this purpose. It allows you to define and use a function for replacement. The function should expect an array of matches and it is supposed to return the replacement value.

preg_replace() with an e modifier will also do the trick.

醉酒的小男人 2024-10-21 08:09:27

检查正则表达式库,已经有一些HTML图像模式

Check the regular expression library, there are already some HTML image patterns.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文