我需要在网页中找到一些css选择器的存在,例如,如果一个网页有一个ID如下的div:<div id='header'> Smile </div>
那么php函数应该返回true
else {{1} } 或如果网页的div具有类似这样的类:false
则php函数返回值<div class='header'> Smile </div>
或true
。
我没有正确的想法这样做,我尝试过这样的事情:
false
但它输出了这个错误:
<?php
include("parser.php"); //using simple html dom parser
$datamain = file_get_html('http://stackoverflow.com/questions/14343073/how-to-count-an-array-content-and-assign-number-position-with-php'); //get the content
$classHeader = $datamain->find('.header', 0); //check for div which has class .header
if(!empty($classHeader)){ //now delete the div which has .header class if it is not empty
foreach ($datamain->find('.classHeader') as $cclass){
$datamain = str_replace($cclass,"", $datamain);
}
}
?>
那么,如何检查css选择器是否存在以及是否存在,然后对此做些什么?
结果: http://simplehtmldom.sourceforge.net
答案 0 :(得分:0)
为了在外部页面上像这样进行抓取,我使用cURL,strpos和substr。由于您不需要页面的实际内容,只是检查它以查看页面上是否有内容,您只需要cURL和strpos。因此,如果您从该URL中提取,它可能如下所示:
<?php
function checkPage($url=''){
if(!$url){
return false;
}
$soap_do = curl_init();
curl_setopt($soap_do, CURLOPT_URL, $url );
curl_setopt($soap_do, CURLOPT_CONNECTTIMEOUT, 15);
curl_setopt($soap_do, CURLOPT_TIMEOUT, 15);
curl_setopt($soap_do, CURLOPT_RETURNTRANSFER, true );
$result = curl_exec($soap_do);
$data = htmlentities($result);
//check for <div id="header" or <div class="header" or <div id='header'> or <div class='header'>
if(strpos($data,"<div id="header"">) || strpos($data,"<div class="header">") ||
strpos($data,"<div id=‘header‘">) || strpos($data,"<div class=‘header‘>")){
return true;
}
return false;
}//end function
$url = "http://stackoverflow.com/questions/14343073/how-to-count-an-array-content-and-assign-number-position-with-php";
if(checkPage($url)){
//do something on success
}else{
//do something on failure
}
答案 1 :(得分:0)
你的CSS选择器语法错误了。查找具有id
“标题”的元素的正确语法是"#header"
。查找具有class
“标题”的元素的正确语法是".header"
(用于查找div
,而只有div
,class
“标题”,它是"div .header"
)。