首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法从侧翼获得具有php卷曲的目标div

无法从侧翼获得具有php卷曲的目标div
EN

Stack Overflow用户
提问于 2018-10-01 19:45:15
回答 1查看 67关注 0票数 0

我正在尝试从flarum.org获得最新的文章,但它没有得到帖子。它可以正常工作,但不工作在侧翼。

这是我的功能:

代码语言:javascript
复制
function questions() {

    $url = 'https://discuss.flarum.org/';

    $curl = curl_init();
    curl_setopt( $curl, CURLOPT_URL, $url );
    curl_setopt( $curl, CURLOPT_HEADER, 0 );

    // SSL support
    curl_setopt( $curl, CURLOPT_SSL_VERIFYPEER, false );
    curl_setopt( $curl, CURLOPT_FOLLOWLOCATION, true );
    curl_setopt( $curl, CURLOPT_USERAGENT, $_SERVER[ 'HTTP_USER_AGENT' ] );

    // Variable support
    curl_setopt( $curl, CURLOPT_RETURNTRANSFER, true );

    $result = curl_exec( $curl );

    //echo $result;

    $result = str_replace( array( "\n", "\t", "\r" ), null, $result );

    preg_match_all( '#<div class="DiscussionListItem">(.*?)</div>#', $result, $match );

    print_r( $match );

    curl_close( $curl );

}

此函数打印一个空数组。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-01 20:10:31

这不是如何解析HTML。相反,使用HTML解析器。如果HTML中有匹配的元素,这样的东西就能工作:

代码语言:javascript
复制
$url = "https://discuss.flarum.org/";
$html = file_get_contents($url);
$dom = new DomDocument();
libxml_use_internal_errors(true);
$dom->loadHTML($html);
$xpath = new DomXPath($dom);
$results = $xpath->query("//div[@class='DiscussionListItem']");
foreach ($results as $result) {
    echo $result->nodeValue;
}

当然,HTML中没有任何匹配的元素。最好将XPath查询修改为//div[@class='container']/ul/li/a

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52597868

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档