更改图像 src 参数内的一些数据并向图像添加超链接 PHP DOM

发布于 2024-11-29 19:08:55 字数 1101 浏览 0 评论 0原文

我有一些文本,里面有图像。 例如这样

texttext<img src="2011-08-15/4/img/123.JPG" alt="" width="528" height="394.3458646616541" >texttext

现在我需要一些代码来搜索图像,找到它,检查它是否有类。 如果不是,那么我想将它的源从这个更改

2011-08-15/4/img/123.JPG

为这个

2011-08-15/4/mini/123.JPG

然后添加超链接到图像并从img标签中删除宽度和高度参数,所以最终结果必须是这样的

texttext<a href="2011-08-15/4/img/123.JPG" class="colorbox cboxElement" style="margin: 0 5px 5px 0"><img src="2011-08-15/4/mini/123.JPG" alt=""></a>texttext

这是搜索的代码,我需要的只是代码进行所有操作。

$doc = new DOMDocument();
$doc->loadHTML($article_header);

$imgs = $doc->getElementsByTagName('img');
foreach ($imgs as $img) {
    if(!$img->getAttribute('class')){
        // ......Here must be some code that does all the work......
        $article_header = $doc->saveXml();
    }
}

有办法解决这个问题吗?如果您无法编写完整的代码,也许您可​​以帮助我写一些小例子?

  1. 如何更改 src 参数内的内容并保存。
  2. 如何从 img 标签中删除宽度和高度参数。
  3. 如何将超链接标签添加到 im 标签。

我需要这3个技巧

I have some text with images inside it.
For example like this

texttext<img src="2011-08-15/4/img/123.JPG" alt="" width="528" height="394.3458646616541" >texttext

Now I need some code that searches for the image, finds it, checks if it has class.
If no then I want to change it's soruce from this

2011-08-15/4/img/123.JPG

to this

2011-08-15/4/mini/123.JPG

And then add hyperlink to image plus remove width and height params from img tag, so the final result must be like this

texttext<a href="2011-08-15/4/img/123.JPG" class="colorbox cboxElement" style="margin: 0 5px 5px 0"><img src="2011-08-15/4/mini/123.JPG" alt=""></a>texttext

Here is the code that searches and all I need is code that does all the manipulations.

$doc = new DOMDocument();
$doc->loadHTML($article_header);

$imgs = $doc->getElementsByTagName('img');
foreach ($imgs as $img) {
    if(!$img->getAttribute('class')){
        // ......Here must be some code that does all the work......
        $article_header = $doc->saveXml();
    }
}

Is there a way to solve this problem ? If you can't write the whole code maybe you could help me with small examples ?

  1. How to change something inside src parameter and save .
  2. How to remove width and height parameters from img tag .
  3. How to add hyperlink tag to im tag.

I need this 3 techniques

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

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

发布评论

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

评论(1

前事休说 2024-12-06 19:08:55
$doc = new DOMDocument();
$doc->loadHTML($html);

$imgs = $doc->getElementsByTagName('img');
foreach ($imgs as $img) {
    if(!$img->getAttribute('class')){
        $src = $img->getAttribute('src');
        $newSRC = str_replace('/img/', '/mini/', $src);
        $img->setAttribute('src', $newSRC);

        $img->setAttribute('width', '500'); // set new attribute value
        $img->setAttribute('height', '500'); // set new attribute value

        $img->setAttribute('title', 'New title'); // set new attribute and value

        $img->removeAttribute('width'); // remove attribute
        $img->removeAttribute('height'); // remove attribute

        $href = $doc->createElement('a', '');
        $addhref = $img->parentNode->insertBefore($href, $img);
        $href->setAttribute('href', 'http://www.google.com');

        $img->parentNode->removeChild($img);
        $href->appendChild($img);

    }
}

echo $doc->saveXml();
  1. 循环图像
  2. 获取没有类的图像
  3. 更改 src、宽度、高度,无论你想要什么,删除属性...
  4. img 元素之前添加 a 元素
  5. 添加 href 属性和您想要的任何内容
  6. 删除没有类的 img 元素
  7. img 附加到 a 元素
$doc = new DOMDocument();
$doc->loadHTML($html);

$imgs = $doc->getElementsByTagName('img');
foreach ($imgs as $img) {
    if(!$img->getAttribute('class')){
        $src = $img->getAttribute('src');
        $newSRC = str_replace('/img/', '/mini/', $src);
        $img->setAttribute('src', $newSRC);

        $img->setAttribute('width', '500'); // set new attribute value
        $img->setAttribute('height', '500'); // set new attribute value

        $img->setAttribute('title', 'New title'); // set new attribute and value

        $img->removeAttribute('width'); // remove attribute
        $img->removeAttribute('height'); // remove attribute

        $href = $doc->createElement('a', '');
        $addhref = $img->parentNode->insertBefore($href, $img);
        $href->setAttribute('href', 'http://www.google.com');

        $img->parentNode->removeChild($img);
        $href->appendChild($img);

    }
}

echo $doc->saveXml();
  1. loop images
  2. get the ones without class
  3. change src, width, height whatever you want, remove attributes ...
  4. add a Element before img Element
  5. add href attribute and whatever you want
  6. remove img Element with no class
  7. append img to a Element
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文