2016-05-31 107 views
1

我想从一个网页的file_get_contents和爆炸使用PHP

<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> 

的以下部分提取数量2673,而且我用这个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

您可以使用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()删除任何额外的空间。