getDocumentID())->html()."
";//$eg1和$eg1->getDocumentID()等价于//echopq("title")->html()."
";//最近匹配$eg2//phpQuery::selectDocument($eg1);//选中的将默认使用文本File//$mes=pq("ul")->html();//获取ul标签中的所有html内容//$mes=pq("ul,li")->html();//获取所有ul和li标签中的html内容//$t=pq("ul[class='article']")->html();//获取ulclass="article"的html内容/****根据电话号码、发行号、当前发行号发送短信通知*/functionfnSendMessageNotifications($mobile,$lotteryNumber1,$lotteryNumber2){echo'
****['.$手机。']****
';回声'
****['.$lotteryNumber1。']****
';回声'
****['.$lotteryNumber2。']****
';$host="http://cowsms.market.alicloudapi.com";$path="/intf/smsapi";$方法=“获取”;$appcode="你的应用代码";$标题=数组();array_push($headers,"Authorization:APPCODE".$appcode);$查询=“手机=”。$手机。“¶s=”。$lotteryNumber1。“%2C”。$lotteryNumber2。"&sign=%E6%B6%88%E6%81%AF%E9%80%9A&tpid=155";回声'
****['.$查询。']****
';$身体=“”;$url=$主机。$路径。“?”.$查询;$curl=curl_init();curl_setopt($curl,CURLOPT_CUSTOMREQUEST,$方法);curl_setopt($curl,CURLOPT_URL,$url);curl_setopt($curl,CURLOPT_HTTPHEADER,$headers);curl_setopt($curl,CURLOPT_FAILONERROR,false);curl_setopt($curl,CURLOPT_RETURNTRANSFER,);curl_setopt($curl,CURLOPT_HEADER,true);如果(1==strpos("$".$host,"https://")){curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,false);curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,false);}var_dump(curl_exec($curl));}/***添加USERAGENT模拟真实浏览器访问**/functionget_fcontent($url,$timeout=5){$url=str_replace("&","&",urldecode(修剪($url)));$cookie=tempnam("/tmp","CURLCOOKIE");$ch=curl_init();curl_setopt($ch,CURLOPT_USERAGENT,"Mozilla/5.0(Windows;U;WindowsNT5.1;rv:1.7.3)Gecko/20041001Firefox/0.10.1");curl_setopt($ch,CURLOPT_URL,$url);//需要获取的URL地址也可以在curl_init()函数中设置curl_setopt($ch,CURLOPT_COOKIEJAR,$cookie);//保存的文件连接结束后的cookie信息。curl_setopt($ch,CURLOPT_FOLLOWLOCATION,true);//启用时,服务器返回的“Location:”会放在header中,递归返回给服务器。使用CURLOPT_MAXREDIRS来限制递归返回的次数。curl_setopt($ch,CURLOPT_ENCODING,"");//HTTP请求头中"Accept-Encoding:"的值。支持的编码是“identity”、“deflate”和“gzip”。如果是空字符串"",请求头将发送所有支持的编码类型。在cURL7.10中添加。curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);//将curl_exec()得到的信息以文件流的形式返回,而不是直接输出。curl_setopt($ch,CURLOPT_AUTOREFERER,true);//根据Location:重定向时,自动在header中设置Referer:信息。//禁用后,cURL将终止来自服务器的身份验证。使用CURLOPT_CAINFO选项设置证书使用CURLOPT_CAPATH选项设置证书目录如果启用CURLOPT_SSL_VERIFYPEER(默认值2),需要将CURLOPT_SSL_VERIFYHOST设置为TRUE,否则设置为FALSE。自cURL7.10起默认为TRUE。从cURL7.10开始,它默认是绑定安装的。curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);//#httpsurls必填,发起连接前等待的时间,如果设置为0,会无限期等待。curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);curl_setopt($ch,CURLOPT_TIMEOUT,$timeout);//设置允许cURL执行的最大秒数。curl_setopt($ch,CURLOPT_MAXREDIRS,10);//指定HTTP重定向的最大次数,该选项与CURLOPT_FOLLOWLOCATION一起使用。$content=curl_exec($ch);curl_close($ch);返回$content;}//set_time_limit(0);//最大执行时间,如果设置为0,则永不过期。$lastQi='';//foreach保存的最后一个周期数$lastNumber='';//foreach保存的最后一个数字$nTheLastTraversalPeriod='';//缓存最后一个foreachfor的同一期号,检查是否是最新一期,也作为最后一个符合条件的期号$nTheLastTraversalNumber='';$sessionStorage_cacheQi='';//缓存上次发短信的issue/***获取最新一期Issuenumber,获取最新一期Issuenumber**/functionfnGetTheLatestPhase(){//详细说明每个curlopt的含义。前往http://www.jb51.net/article/39331.htmglobal$lastQi;全球$lastNumber;全球$nTheLastTraversalPeriod;全球$nTheLastTraversalNumber;全局$sessionStorage_cacheQi;$url='http://caipiao.163.com/award/cqssc/';$content=get_fcontent($url);phpQuery::newDocumentHTML($content);//$main=pq('标题')->html();//$table=pq('.award-winNum')->html();$table_tr=pq('tr');$nCurrentTerm='';foreach(pq(".award-winNum")as$table_tr){$nCurrentTerm=pq($table_tr)->prev()->html();//当前项$nCurrentNumber=pq($table_tr)->html();//当前项if($nCurrentNumber[0]===$nCurrentNumber[strlen($nCurrentNumber)-1]&&intval($nTheLastTraversalPeriod)
';}if($nCurrentTerm==='001'&&!is_numeric(preg_replace('//','',$nCurrentNumber))){//假设重启,每天出新一期,旧的还在缓存,我应该怎么办?//假设当前周期号为001,表示TraversalPeriod从头开始。这时候你需要://-删除缓存的最后一个发送短信的时段号//-删除缓存的最后一个首尾相同的时段号$nTheLastTraversalPeriod='';$sessionStorage_cacheQi='';}////echopq($table_tr);//$text=pq($table_tr)->html();//数字//$_lastQi=pq($table_tr)->prev()->html();//当前元素的前一个元素//echo'
****['.$nTheLastTraversalPeriod。']****
';//if($text[0]===$text[strlen($text)-1]&&intval($sessionStorage_cacheQi||'')
';if($nTheLastTraversalPeriod!==$sessionStorage_cacheQi){//假设没有值得发送的issue,假设当前发送的issue与之前发送的issue相同如果发送的期间号不同(不能相同),则相关代码(发送短信)不会被执行$sessionStorage_cacheQi=$nTheLastTraversalPeriod;$object=(object)['nPeriodNumber'=>$nTheLastTraversalPeriod,'nNumber'=>preg_replace('//','',$nTheLastTraversalNumber),];返回$对象;}else{$object=(object)['nPeriodNumber'=>'','nNumber'=>'',];返回$对象;}}//var_dump(fnGetTheLatestPhase());//$options=fnGetTheLatestPhase();//fnSendMessageNotifications('185********',$options->nPeriodNumber,$options->nNumber);while(1){$options=fnGetTheLatestPhase();//必须同时使用两者来刷新输出缓冲区ob_flush();//从中获取数据flush()在php的buffer中释放;//将释放的数据发送给浏览器,如果没有flush和ob_flush,浏览器会陷入假卡死状态var_dump($options);if($options->nPeriodNumber){fnSendMessageNotifications('185****',$options->nPeriodNumber,$options->nNumber);}睡眠(5);}
