需要有关图像链接的 preg_replace 的帮助(php)

发布于 2024-12-03 18:56:49 字数 715 浏览 0 评论 0原文

可能的重复:
如何使用 PHP 解析 HTML?
抓取一个元素

我在 href 标签中有一些带有图像的随机文本,如下所示:

<a title="Some title" rel="lightbox" href="http://www.test.com/DSCF0733.jpg"><img class="alignleft size-thumbnail wp-image-504" title="some title" src="http://www.test.com/Dhghjkhjl33-150x150.jpg" alt="description" width="145" height="145" /></a>

我想找到它们全部并放入一个数组中。文本可以包含其他链接,但我们只需要 rel lightbox。 请帮忙!

Possible Duplicate:
How to parse HTML with PHP?
Grabbing the href attribute of an A element

I have some random text with images in a href tag like this:

<a title="Some title" rel="lightbox" href="http://www.test.com/DSCF0733.jpg"><img class="alignleft size-thumbnail wp-image-504" title="some title" src="http://www.test.com/Dhghjkhjl33-150x150.jpg" alt="description" width="145" height="145" /></a>

I want to find them all and put to an array. Text can contain other links, but we need only with rel lightbox.
Please, help!

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

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

发布评论

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

评论(2

几味少女 2024-12-10 18:56:49

您可以使用内置的 DOMDocument(),简单而有效。比正则表达式更安全...

<?php 
$site=file_get_contents('http://example.com');

$xml = new DOMDocument();
@$xml->loadHTML($site);


foreach($xml->getElementsByTagName('a') as $links) {
    //Check for lightbox within the link
    if($links->getAttribute('rel')=='lightbox'){ 
        //Assign
        $imgLinks[]=$links->getAttribute('href');
    }
}

print_r($imgLinks);
?>

You could use the built in DOMDocument(), simple yet effective & safer then regex...

<?php 
$site=file_get_contents('http://example.com');

$xml = new DOMDocument();
@$xml->loadHTML($site);


foreach($xml->getElementsByTagName('a') as $links) {
    //Check for lightbox within the link
    if($links->getAttribute('rel')=='lightbox'){ 
        //Assign
        $imgLinks[]=$links->getAttribute('href');
    }
}

print_r($imgLinks);
?>
吝吻 2024-12-10 18:56:49

为了简单起见,使用 phpQuery 或 QueryPath

include "qp.phar";
foreach (htmlqp($html)->find("a[rel=lightbox]") as $a) {
    $links[] = $a->attr("href");
}

但您也可以修改包含的文本或其他属性。 (您的问题的 preg_replace 部分可能需要详细说明。)

For simplicity use phpQuery or QueryPath:

include "qp.phar";
foreach (htmlqp($html)->find("a[rel=lightbox]") as $a) {
    $links[] = $a->attr("href");
}

But you can also modify the contained text or other attributes. (The preg_replace part of your question might need elaboration.)

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