2015-11-26 41 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++; 
} 

?>