摘要:連接結束后保存信息的文件。將獲取的信息以文件流的形式返回,而不是直接輸出。當根據重定向時,自動設置中的信息。禁用后將終止從服務端進行驗證。指定最多的重定向的數量,這個選項是和一起使用的。
getDocumentID())->html()."
";//$eg1與$eg1->getDocumentID()效果等同 // echo pq("title")->html()."
";//就近匹配 $eg2 // phpQuery::selectDocument($eg1); //默認會使用選定的文檔 // $mes=pq("ul")->html();//獲取所有的ul標簽中的html內容 // $mes=pq("ul,li")->html();//獲取所有的ul以及li標簽中的html內容 // $t=pq("ul[class="article"]")->html();//獲取ul class="article"的html內容 /*** * 根據 手機號, 第幾期, 當期號碼 發送短信通知 */ function fnSendMessageNotifications($mobile, $lotteryNumber1, $lotteryNumber2) { echo "
****[" . $mobile . "]****
" ; echo "
****[" . $lotteryNumber1 . "]****
" ; echo "
****[" . $lotteryNumber2 . "]****
" ; $host = "http://cowsms.market.alicloudapi.com"; $path = "/intf/smsapi"; $method = "GET"; $appcode = "你的appcode"; $headers = array(); array_push($headers, "Authorization:APPCODE " . $appcode); $querys = "mobile=" . $mobile . "¶s=" . $lotteryNumber1 . "%2C" . $lotteryNumber2 . "&sign=%E6%B6%88%E6%81%AF%E9%80%9A&tpid=155"; echo "
****[" . $querys . "]****
" ; $bodys = ""; $url = $host . $path . "?" . $querys; $curl = curl_init(); curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); curl_setopt($curl, CURLOPT_FAILONERROR, false); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_HEADER, true); if (1 == strpos("$".$host, "https://")) { curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); } var_dump(curl_exec($curl)); } /** * 添加 USERAGENT , 模擬真實瀏覽器訪問 * */ function get_fcontent($url, $timeout = 5 ) { $url = str_replace( "&", "&", urldecode(trim($url)) ); $cookie = tempnam ("/tmp", "CURLCOOKIE"); $ch = curl_init(); curl_setopt( $ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20041001 Firefox/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"。如果為空字符串"",請求頭會發送所有支持的編碼類型。在cURL 7.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。自cURL 7.10開始默認為TRUE。從cURL 7.10開始默認綁定安裝。 curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false ); // # required for https urls, 在發起連接前等待的時間,如果設置為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 ); return $content; } // set_time_limit(0); // Maximum execution time , 設置成0的話,就是永不過期。 $lastQi = ""; // foreach保存的最后一個 期號 $lastNumber = ""; // foreach保存的最后一個 號碼 $nTheLastTraversalPeriod = ""; // 緩存上一個foreach的首尾相同的期號, 用以比對是否為最新一期, 也用來當做最后一個符合條件的期號 $nTheLastTraversalNumber = ""; $sessionStorage_cacheQi = ""; // 緩存上一個發送了短信的期號 /** * 獲得最新一期期號, 獲得最新一期號碼 * */ function fnGetTheLatestPhase(){ //詳細每個curlopt意思.轉http://www.jb51.net/article/39331.htm global $lastQi; global $lastNumber; global $nTheLastTraversalPeriod; global $nTheLastTraversalNumber; global $sessionStorage_cacheQi; $url = "http://caipiao.163.com/award/cqssc/"; $content = get_fcontent($url); phpQuery::newDocumentHTML($content); // $main = pq("title")->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)****[" . $nTheLastTraversalPeriod . "]****
" ; } if($nCurrentTerm === "001" && !is_numeric(preg_replace("/ /", "", $nCurrentNumber))){ // 假設重新開始, 每天新一期, 舊的還在緩存, 如何辦? // 假設當前的期號為001, 表示的時時彩從頭開始, 此時需要: // - 刪除緩存的上一個發送短信的期號 // - 刪除緩存的上一個首尾相同的期號 $nTheLastTraversalPeriod = ""; $sessionStorage_cacheQi = ""; } // // echo pq($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||"")"; } echo "
"; if($nTheLastTraversalPeriod !== $sessionStorage_cacheQi){ // 假設沒有值得發送的期號, 假設當前發送的期號與之前發送的期號不同(不能相同), 則不執行相關代碼(發送短信) $sessionStorage_cacheQi = $nTheLastTraversalPeriod; $object = (object) [ "nPeriodNumber" => $nTheLastTraversalPeriod, "nNumber" => preg_replace("/ /", "", $nTheLastTraversalNumber), ]; return $object; }else{ $object = (object) [ "nPeriodNumber" => "", "nNumber" => "", ]; return $object; } } // var_dump(fnGetTheLatestPhase()); // $options = fnGetTheLatestPhase(); // fnSendMessageNotifications("185********", $options->nPeriodNumber, $options->nNumber); while (1) { $options = fnGetTheLatestPhase(); // 兩者必須同時使用來刷新輸出緩沖 ob_flush(); //將數據從php的buffer中釋放出來 flush(); //將釋放出來的數據發送給瀏覽器, 要是沒有 flush 和 ob_flush , 瀏覽器就會陷入一種假卡死的狀態 var_dump($options); if($options->nPeriodNumber){ fnSendMessageNotifications("185****", $options->nPeriodNumber, $options->nNumber); } sleep(5); }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/29127.html
摘要:連接結束后保存信息的文件。將獲取的信息以文件流的形式返回,而不是直接輸出。當根據重定向時,自動設置中的信息。禁用后將終止從服務端進行驗證。指定最多的重定向的數量,這個選項是和一起使用的。
摘要:也就是說,我的篇文章的請求對應個實例,這些實例都請求完畢后,執行以下邏輯他的目的在于對每一個返回值這個返回值為單篇文章的內容,進行方法處理。 英國人Robert Pitt曾在Github上公布了他的爬蟲腳本,導致任何人都可以容易地取得Google Plus的大量公開用戶的ID信息。至今大概有2億2千5百萬用戶ID遭曝光。 亮點在于,這是個nodejs腳本,非常短,包括注釋只有71行。 ...
摘要:注意事項以下版本要設置默認編碼,,否則程序可能無法正確顯示中文。組成部分協議是對請求和響應的報文內容進行了約束和規范。請求報文請求是由客戶端發起,其規范格式為請求行請求頭請求主體。 showImg(https://segmentfault.com/img/remote/1460000013696283?w=1920&h=1080); Ajax 前言 前面我們已經學習了js基礎知識和一些...
摘要:注意事項以下版本要設置默認編碼,,否則程序可能無法正確顯示中文。組成部分協議是對請求和響應的報文內容進行了約束和規范。請求報文請求是由客戶端發起,其規范格式為請求行請求頭請求主體。 showImg(https://segmentfault.com/img/remote/1460000013696283?w=1920&h=1080); Ajax 前言 前面我們已經學習了js基礎知識和一些...
閱讀 2561·2021-11-22 09:34
閱讀 3539·2021-11-15 11:37
閱讀 2341·2021-09-13 10:37
閱讀 2105·2021-09-04 16:40
閱讀 1564·2021-09-02 15:40
閱讀 2456·2019-08-30 13:14
閱讀 3326·2019-08-29 13:42
閱讀 1903·2019-08-29 13:02