来自url的file_get_contents并使用php进行爆炸

时间:2016-05-31 00:15:37

标签: php

我想从网页的以下部分中提取数字2,673

<ul class="instructor__stats">


<li>
    <div class="small">
        Students
    </div>
    <div class="a2">
        2,673
    </div>
</li>




<li>
    <div class="small">
        Courses
    </div>
    <div class="a2">
        1
    </div>
</li>

我使用这个PHP代码:

    <?php        
    $url = file_get_contents("https://www.udemy.com/user/54a6106b68452/");


        $pageArray = explode('<ul class="instructor__stats">


<li>
    <div class="small">
        ', $url);

        if (sizeof ($pageArray) >1){

            $pageArray_2 = explode('
    </div>
</li>




<li>
    <div class="small">
        Courses', $pageArray[1]);

            $numberofstudents = $pageArray_2[0];   
        }
?>

它不返回任何东西。我知道我正在访问该页面并获取内容,因为我提取了一些纯文本进行测试。知道如何提取数字2673?数字2673每日更新,以便价值来自其他地方。

1 个答案:

答案 0 :(得分:1)

您可以使用DOMDocumentDOMXpath

$dom = new DOMDocument();
$dom->preserveWhiteSpace = false;
$dom->loadHTML(file_get_contents("http://somesite/somepage"));
$xpath = new DOMXpath($dom);
echo $xpath->query("//div[@class='a2']")[0]->textContent;

最重要的部分是$xpath->query
我们尝试找到diva2,第一个匹配[0]并提取其文本(->textContent)。最后,我们使用trim()删除任何内容额外的空间。