国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 剑河县| 新建县| 交口县| 南皮县| 卢湾区| 旺苍县| 渭源县| 天峻县| 杭锦旗| 南岸区| 阜阳市| 竹北市| 当涂县| 海阳市| 潍坊市| 富裕县| 武城县| 长垣县| 平阳县| 时尚| 姚安县| 镇坪县| 隆回县| 苏尼特左旗| 孟连| 乌兰察布市| 吉木乃县| 驻马店市| 乌拉特前旗| 堆龙德庆县| 通河县| 纳雍县| 永登县| 开江县| 阿瓦提县| 富蕴县| 炎陵县| 航空| 清水河县| 化州市| 宁明县|