【问题标题】:How to access an HTML attribute and retrieve data from it in PHP?如何在 PHP 中访问 HTML 属性并从中检索数据?
【发布时间】:2019-01-01 13:36:42
【问题描述】:

我是 PHP 新手,我想知道如何从诸如 src 之类的 HTML 元素中检索数据?

在 jQuery 中很容易做到这一点:

$('img').attr('src');

但我不知道如何在 PHP 中做到这一点(如果可能的话)。

这是我正在研究的一个例子:

  1. 我将$result 加载到SimpleXMLElement 并将其存储到$xml

    $xml = simplexml_load_string($result) or die("Error: Cannot create object");

  2. 然后使用foreach 循环遍历所有元素:

    foreach($xml->links->link as $link){
        echo 'Image: ' . $link->{'link-code-html'}[0] . '</br>'; 
        // returns sometihing similar to: <a href='....'><img src='....'></a>
    }
    
  3. foreach 内部,我正在尝试访问img 中的链接(src)。

有没有办法访问嵌套在a 内的img 中的src — 输出到屏幕时清除:

    echo 'Image: ' . $link->{'link-code-html'}[0] . '</br>';

【问题讨论】:

  • 请不要总结你的代码。显示所有相关代码并记住解释你正在处理的数据,至少有一个例子
  • 好吧,这就是我要分享的全部内容。顺便说一句,这一点已经在我的代码中了,只是在我在这里输入的时候不小心忘记了。输出是 HTML:img 位于 a 内。在 jQuery 中检索属性很容易,但我不知道如何在 PHP 中进行检索(如果可能)。这是我的问题。
  • 然后,不要直接将其回显到浏览器,而是将其放入变量中,然后您必须对该变量进行一些文本处理以访问/操作这些属性中的信息

标签: php regex dom


【解决方案1】:

我会使用内置的DOMDocumentDOMXPath API 来执行此操作,然后您可以在任何匹配的img 节点上使用getAttribute 方法:

$doc = new DOMDocument();
// Load some example HTML. If you need to load from file, use ->loadHTMLFile
$doc->loadHTML("<a href='abc.com'><img src='ping1.png'></a>
                <a href='def.com'><img src='ping2.png'></a>
                <a href='ghi.com'>something else</a>");
$xpath = new DOMXpath($doc);
// Collect the images that are children of anchor elements
$imgs = $xpath->query("//a/img");

foreach($imgs as $img) {
    echo "Image: " . $img->getAttribute("src") . "\n";
}

【讨论】:

  • 有效!我一直在寻找这个。简单、干净、容易。 +5
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多