国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

在PHP中使用計劃任務(wù)

2019-11-06 08:46:41
字體:
供稿:網(wǎng)友

        要讓程序按計劃自動執(zhí)行,如果是自己的服務(wù)器,那當(dāng)然推薦使用操作系統(tǒng)本身的計劃任務(wù)(例如linux下的cron),這樣不占用資源。但如果使用的是虛擬主機(jī)沒有服務(wù)器的權(quán)限,那我們還可以使用php的計劃任務(wù),總結(jié)一下有以下幾種方式。

        1.使用ignore_user_abort函數(shù),如果使用代碼ignore_user_abort(true),表示可以或略用戶終止請求,如果用戶執(zhí)行某個腳本后停止請求(比如關(guān)掉瀏覽器),則腳本還會繼續(xù)執(zhí)行直到執(zhí)行完畢,我們可以利用這一點讓程序無限執(zhí)行下去。例如:

<?phpignore_user_abort(true); //忽略用戶終止請求set_time_limit(0); //不顯示腳本執(zhí)行時間//以下做任何操作 不用擔(dān)心時間問題while(true){        file_put_contents('./b.txt',date('s'));        sleep(30);}?>        當(dāng)然上面的做法是比較耗資源的,如果要這樣做一定要謹(jǐn)慎,另外這個腳本必須做權(quán)限控制只能讓管理員來執(zhí)行,并且只執(zhí)行一次,不能讓用戶來執(zhí)行到,否則將會發(fā)生多個腳本同時執(zhí)行的情況。

        2.使用圖片標(biāo)簽來請求計劃任務(wù),例如在頁面中放入代碼,這樣頁面一執(zhí)行就會發(fā)起對cron.php的請求,一些開源產(chǎn)品(例如ECSHOP)就是使用的此方式,我們可以在cron.php中加入時間判斷,符合條件的請求才會執(zhí)行,而不是每次訪問頁面都執(zhí)行。這樣做的弊端是,每次用戶訪問都會執(zhí)行cron.php,并且如果cron.php中的程序沒有執(zhí)行完時頁面會顯示還在加載,給用戶一種頁面沒有完全打開的假象。

        3.在頁面執(zhí)行時使用fsockopen來請求cron.php,并且在請求之后關(guān)閉連接,只要我們在cron.php中設(shè)置了ignore_user_abort(true),即使關(guān)閉了連接腳本也會執(zhí)行完畢。這個和第二種方式類似,但好處是如果cron.php執(zhí)行時間較長用戶也不會感覺網(wǎng)頁沒有加載完畢。代碼:

        

<?php  $url = 'http://您的域名/cron.php';  $urlarr     = parse_url($url);    $http = $urlarr['scheme'];    if($http == "https") {   $transports = "ssl://";   $urlarr["port"] = "443";  } else {   $transports = "tcp://";   $urlarr["port"] = "80";  }  $fp = fsockopen($transports . $urlarr['host'],$urlarr['port'],$errno,$errstr,$time_out = 30);  if(!$fp) {   die("ERROR: $errno - $errstr/n");  } else {   fputs($fp, "POST ".$urlarr["path"]." HTTP/1.1/r/n");   fputs($fp, "Host: ".$urlarr["host"]."/r/n");   fputs($fp, "Connection: close/r/n/r/n");    fclose($fp);  }?>
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 元谋县| 普陀区| 丰顺县| 铅山县| 乐安县| 平潭县| 女性| 比如县| 凌源市| 衡阳市| 达尔| 商都县| 霞浦县| 噶尔县| 溧水县| 沅陵县| 枣庄市| 东明县| 海林市| 卢氏县| 望奎县| 揭西县| 福安市| 山丹县| 鄄城县| 正安县| 澎湖县| 丽江市| 苍南县| 雷波县| 齐齐哈尔市| 宁波市| 鹤庆县| 那坡县| 屯昌县| 康保县| 高阳县| 得荣县| 连南| 沁水县| 巨野县|