2015-11-26 38 views
3

我有一个PHP代码如下......获取卷曲PHP黑名单whoer.net

$result1 = k_curl("http://whoer.net/",$ip); 
preg_match('#Blacklist:\n</dt>\n<d(.*?)>\n<span class="ico-holder main-good"> </span>\n<span class="cont">\n(.*?)\n</span>#',$result1, $i); 

我想借此款黑名单:不还是有的,但我只可以在黑名单中没有,我认为我在正则表达式中错了。你可以帮我给他们感谢

回答

1

你可以使用XPath代替正则表达式。这将捕获yes和no和其他任何他们会在里面写

<?php 
$html=file_get_contents('http://whoer.net'); 
[email protected]::loadHTML($html); 
$xp=new DOMXpath($domd); 
$res=$xp->query('//*[@id="content"]/div[1]/div/div[2]/dl/dd[5]/span[2]'); 
$res=$res->item(0); 
$res=$res->textContent; 
$res=trim($res); 
var_dump($res); 
2

使用htmldom(http://simplehtmldom.sourceforge.net/) 你可以优化这个代码,但这会做诡计

<?php 
include('simple_html_dom.php'); 
$html = file_get_html("http://whoer.net/"); 
$array_result=array(); 
$array_result_data=array(); 
foreach($html->find('dl.ping') as $element){ 
    foreach($element->find('dt') as $inelement){ 
     array_push($array_result,trim($inelement->innertext)); 
    } 
    foreach($element->find('dd') as $inelement){ 
     array_push($array_result_data,trim($inelement->innertext)); 
    } 
} 
//view data saved 
$i=0; 
foreach ($array_result as $key => $value) { 
    echo $value.$array_result_data[$i].'<br />'; 
    $i++; 
} 

?>