我有一个如下的php代码......
$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);
我想接受段落黑名单:否或是,但我只能接受黑名单不,我想我在正则表达式中是错的。你可以帮我找到他们谢谢
发布于 2015-11-26 14:45:26
使用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++;
}
?>
发布于 2015-11-26 14:37:35
您可以使用XPath代替正则表达式。这将捕获yes和no,以及他们在其中写入的任何其他内容
<?php
$html=file_get_contents('http://whoer.net');
$domd=@DOMDocument::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);
https://stackoverflow.com/questions/33930997
复制相似问题