Php 从url获取特定数据

Php 从url获取特定数据,php,Php,我查阅了其他答案,但似乎没有一个适合我,因为那些回答的人忘了添加评论。我试图从url中的div获取特定的页面。我有3个案例,但如何在任何案例中获得div class=“entry content”中的第一个 案例1 <div class="entry-content"> <div></div> <div></div> <p> want to get content here </p>

我查阅了其他答案,但似乎没有一个适合我,因为那些回答的人忘了添加评论。我试图从url中的div获取特定的页面。我有3个案例,但如何在任何案例中获得
div class=“entry content”
中的第一个

案例1

<div class="entry-content">
    <div></div>
    <div></div>
    <p> want to get content here </p>
    <p></p>
    <p></p>
    <p></p>
    <p></p>
    <p></p>
    <p></p>
    <p></p>
    <p></p>
    <div></div>
  </div>

使用jquery很容易:

var firstP = $('.entry-content p:first');
但是您的代码看起来像php,所以我有点困惑您想要归档什么。

您可以使用类来选择元素。没有
GetElementsByCassName
方法

<?php
    $html = file_get_contents('http://www.myurl.com/');

    $doc = new DOMDocument;
    $doc->loadHTML($html);
    $finder = new DomXPath($doc);
    $p = $finder->query("//*[contains(@class, 'entry-content')]")->item(0)->getElementsByTagName('p')->item(0);

    echo $p->nodeValue;
?>

您并不是在编码时查找
条目内容
元素中的第一个元素,而是其中的第一个
元素。如何将其添加到php?这是一条消息“调用未定义的方法DOMDocument::query()”,这很奇怪,我没有收到与您相同的错误。我在这段代码中遇到了很多错误:因为页面的HTML不是有效的HTML。它有几个具有相同ID的元素,这些元素从一开始就将其丢弃。嗯,我看看能不能找到绕过它的方法。。。
$html = file_get_contents('http://www.myurl.com/');
$doc = new DOMDocument();
@$doc->loadHTML($html);
$p=$doc->getElementByClassName('entry-content')->getElementsByTagName('p')->item(0);
echo $p->nodeValue;
var firstP = $('.entry-content p:first');
<?php
    $html = file_get_contents('http://www.myurl.com/');

    $doc = new DOMDocument;
    $doc->loadHTML($html);
    $finder = new DomXPath($doc);
    $p = $finder->query("//*[contains(@class, 'entry-content')]")->item(0)->getElementsByTagName('p')->item(0);

    echo $p->nodeValue;
?>