奶头挺立呻吟高潮av全片,成人试看120秒体验区,性欧美极品v,A片高潮抽搐揉捏奶头视频

php語言

PHP中如何實現crontab代碼

時間:2025-04-14 14:44:07 php語言 我要投稿
  • 相關推薦

PHP中如何實現crontab代碼

  PHP是一種通用開源腳本語言。語法吸收了C語言、Java和Perl的特點,利于學習,使用廣泛,主要適用于Web開發領域。下面,小編為大家搜索整理了PHP中如何實現crontab代碼,希望能給大家帶來幫助!更多精彩內容請及時關注我們應屆畢業生考試網!

  1. 準備一個標準crontab文件 ./crontab

  代碼如下:

  # m h dom mon dow command

  * * * * * date > /tmp/cron.date.run

  2. crontab -e 將此cron.php腳本加入系統cron

  代碼如下:

  * * * * * /usr/bin/php cron.php

  3. cron.php 源碼

  代碼如下:

  // 從./crontab讀取cron項,也可以從其他持久存儲(mysql、redis)讀取

  $crontab = file('./crontab');

  $now = $_SERVER['REQUEST_TIME'];

  foreach ( $crontab as $cron ) {

  $slices = preg_split("/[s]+/", $cron, 6);

  if( count($slices) !== 6 ) continue;

  $cmd = array_pop($slices);

  $cron_time = implode(' ', $slices);

  $next_time = Crontab::parse($cron_time, $now);

  if ( $next_time !== $now ) continue;

  $pid = pcntl_fork();

  if ($pid == -1) {

  die('could not fork');

  } else if ($pid) {

  // we are the parent

  pcntl_wait($status, WNOHANG); //Protect against Zombie children

  } else {

  // we are the child

  `$cmd`;

  exit;

  }

  }

  /* https://github.com/jkonieczny/PHP-Crontab */

  class Crontab {

  /**

  * Finds next execution time(stamp) parsin crontab syntax,

  * after given starting timestamp (or current time if ommited)

  *

  * @param string $_cron_string:

  *

  * 0 1 2 3 4

  * * * * * *

  * - - - - -

  * | | | | |

  * | | | | +----- day of week (0 - 6) (Sunday=0)

  * | | | +------- month (1 - 12)

  * | | +--------- day of month (1 - 31)

  * | +----------- hour (0 - 23)

  * +------------- min (0 - 59)

  * @param int $_after_timestamp timestamp [default=current timestamp]

  * @return int unix timestamp - next execution time will be greater

  * than given timestamp (defaults to the current timestamp)

  * @throws InvalidArgumentException

  */

  public static function parse($_cron_string,$_after_timestamp=null)

  {

  if(!preg_match('/^((*(/[0-9]+)?)|[0-9-,/]+)s+((*(/[0-9]+)?)|[0-9-,/]+)s+((*(/[0-9]+)?)|[0-9-,/]+)s+((*(/[0-9]+)?)|[0-9-,/]+)s+((*(/[0-9]+)?)|[0-9-,/]+)$/i',trim($_cron_string))){

  throw new InvalidArgumentException("Invalid cron string: ".$_cron_string);

  }

  if($_after_timestamp && !is_numeric($_after_timestamp)){

  throw new InvalidArgumentException("$_after_timestamp must be a valid unix timestamp ($_after_timestamp given)");

  }

  $cron = preg_split("/[s]+/i",trim($_cron_string));

  $start = empty($_after_timestamp)?time():$_after_timestamp;

  $date = array( 'minutes' =>self::_parseCronNumbers($cron[0],0,59),

  'hours' =>self::_parseCronNumbers($cron[1],0,23),

  'dom' =>self::_parseCronNumbers($cron[2],1,31),

  'month' =>self::_parseCronNumbers($cron[3],1,12),

  'dow' =>self::_parseCronNumbers($cron[4],0,6),

  );

  // limited to time()+366 - no need to check more than 1year ahead

  for($i=0;$i<=60*60*24*366;$i+=60){

  if( in_array(intval(date('j',$start+$i)),$date['dom']) &&

  in_array(intval(date('n',$start+$i)),$date['month']) &&

  in_array(intval(date('w',$start+$i)),$date['dow']) &&

  in_array(intval(date('G',$start+$i)),$date['hours']) &&

  in_array(intval(date('i',$start+$i)),$date['minutes'])

  ){

  return $start+$i;

  }

  }

  return null;

  }

  /**

  * get a single cron style notation and parse it into numeric value

  *

  * @param string $s cron string element

  * @param int $min minimum possible value

  * @param int $max maximum possible value

  * @return int parsed number

  */

  protected static function _parseCronNumbers($s,$min,$max)

  {

  $result = array();

  $v = explode(',',$s);

  foreach($v as $vv){

  $vvv = explode('/',$vv);

  $step = empty($vvv[1])?1:$vvv[1];

  $vvvv = explode('-',$vvv[0]);

  $_min = count($vvvv)==2?$vvvv[0]:($vvv[0]=='*'?$min:$vvv[0]);

  $_max = count($vvvv)==2?$vvvv[1]:($vvv[0]=='*'?$max:$vvv[0]);

  for($i=$_min;$i<=$_max;$i+=$step){

  $result[$i]=intval($i);

  }

  }

  ksort($result);

  return $result;

  }

  }

【PHP中如何實現crontab代碼】相關文章:

PHP中多態如何實現05-06

php代碼如何實現命令行執行05-19

PHP滾動日志的代碼實現05-17

如何實現PHP靜態新聞列表自動生成代碼04-25

如何在HTML中嵌入PHP代碼03-18

php實現無限級分類實現代碼07-03

PHP代碼如何規范02-13

php的curl實現get和post的代碼07-07

php進度條實現代碼04-05

主站蜘蛛池模板: 元阳县| 定安县| 盘锦市| 丰县| 蓬莱市| 延吉市| 宜川县| 开鲁县| 广昌县| 梁河县| 成安县| 宁都县| 彭州市| 图木舒克市| 张掖市| 化德县| 清水河县| 方城县| 临城县| 康平县| 苍山县| 遂溪县| 揭西县| 丹巴县| 綦江县| 营口市| 北辰区| 桃园市| 环江| 九龙城区| 石柱| 墨竹工卡县| 托里县| 山丹县| 云阳县| 吉水县| 永修县| 高青县| 察哈| 阿克陶县| 淳化县|