如何从外部URL获取PHP中的特定值

如何从外部URL获取PHP中的特定值,php,Php,我试图从外部URL获取特定值。不知怎的,我现在被卡住了。请有人看一下并帮忙 我正试图用新文档来实现这一点 现在查看目标URL上HTML文件的结构 <div id="post" align="left"> <ul> <li> <a>some content</a> </li> </ul> </div> <div id="po

我试图从外部URL获取特定值。不知怎的,我现在被卡住了。请有人看一下并帮忙

我正试图用新文档来实现这一点

现在查看目标URL上HTML文件的结构

<div id="post" align="left">
    <ul>
        <li>
            <a>some content</a>
        </li>
    </ul>
</div>

<div id="post" align="left">
    <ul>
        <li>
            <a>some content</a>
        </li>
        <li>
            <a>Targeted Content</a>
        </li>
    </ul>
</div>

<div id="post" align="left">
    <ul>
        <li>
            <a>some content</a>
        </li>
    </ul>
</div>
当我试图从一个数组中获取这个值时,它为我提供了整个div值—一些以内容为目标的内容。我只需要目标内容。

请尝试以下操作:

<?php
$html = file_get_contents('https://someurl.com');
$dom = new DOMDocument();
libxml_use_internal_errors(true);

$dom->loadHTML($html);
$xpath = new DOMXPath($dom);

$elements = $xpath->query("//div[@id='post']/ul/li[2]/a");
$values = [];
foreach ($elements as $element) {
    $values[] = $element->textContent;
}

print_r($values);

你试过这个吗//div[@id='post']/ul/li[2]目标内容的标准是什么?我认为我们只有通过数组获取它的选项您发布的html无效,因为它有多个带有id post的div。我认为我们只有通过数组获取它的选项……这并不会阻止您按照建议使用更精确的xPath查询。但是是的,您将遇到另一个问题,因为它可能不喜欢无效的重复ID
<?php
$html = file_get_contents('https://someurl.com');
$dom = new DOMDocument();
libxml_use_internal_errors(true);

$dom->loadHTML($html);
$xpath = new DOMXPath($dom);

$elements = $xpath->query("//div[@id='post']/ul/li[2]/a");
$values = [];
foreach ($elements as $element) {
    $values[] = $element->textContent;
}

print_r($values);