隔离要修改的图像

发布于 2025-01-07 22:35:53 字数 951 浏览 2 评论 0原文

我有一个包含文本和图像的富文本字段(称为描述),

我尝试隔离所有图像以修改 src 标记以在

示例之前和之后添加元素: 应该变成

我成功了当我的领域中只有一张图像时,我使用这个:

            $descriptionencodee = utf8_encode($description);
            $parser = xml_parser_create();
            xml_parse_into_struct($parser, $descriptionencodee, $values);
            foreach ($values as $key => $val) {
            if ($val['tag'] == 'IMG') {
               $first_src = $val['attributes']['SRC'];
               break;
            }           


            $string = $description;
            $replacement = '<img src="'timthumb.php?src='. $first_src .'&h=50" />';
//          $replacement = '${1}<br/>';
            $string = preg_replace("/(\<img\b[^>]*>)/", $remplacement, $string);
            echo $string;

所以当有多个图像时它不起作用

I have a rich text field (called description) which containing texts and images

I try to isolate all the images to modify the src tag to add elements before and after

example : <img src="path/to/myimage.jpg" /> should become <img src="timthumb.php1src=path/to/myimage.jpg&h=50" />

I succeed when there's just one image in my field, i use this :

            $descriptionencodee = utf8_encode($description);
            $parser = xml_parser_create();
            xml_parse_into_struct($parser, $descriptionencodee, $values);
            foreach ($values as $key => $val) {
            if ($val['tag'] == 'IMG') {
               $first_src = $val['attributes']['SRC'];
               break;
            }           


            $string = $description;
            $replacement = '<img src="'timthumb.php?src='. $first_src .'&h=50" />';
//          $replacement = '${1}<br/>';
            $string = preg_replace("/(\<img\b[^>]*>)/", $remplacement, $string);
            echo $string;

so it doesn't work when there's more than one image

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

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

发布评论

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

评论(1

╭⌒浅淡时光〆 2025-01-14 22:35:53

这在我最近的一个项目中很有用:

<?php
    $content = $your_html_here;

    preg_match_all( '/<img .* \/>/iU', $content, $results );    // Find all <img />
    foreach ( $results[0] as $one_image ){ // Loop through results
        // Replace <img /> with altered <img />
        $content = str_replace( $one_image, str_replace( 'src="', 'src="timthumb.php?h=50&src=', $one_image ), $content );
    }

This worked for me in a recent project:

<?php
    $content = $your_html_here;

    preg_match_all( '/<img .* \/>/iU', $content, $results );    // Find all <img />
    foreach ( $results[0] as $one_image ){ // Loop through results
        // Replace <img /> with altered <img />
        $content = str_replace( $one_image, str_replace( 'src="', 'src="timthumb.php?h=50&src=', $one_image ), $content );
    }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文