我想在cron作业中运行PHP脚本。我的主人限制了我很多,我必须每小时等待才能重复这个cron工作。
我有一个120s的计时器,使用javascript递减并更新为0,以防止失步。
我想做一些“滚动骰子”程序,其中每个加入的人都会进入某种大厅阵列,大厅阵列应该迭代到我的cron作业php脚本并在那里挑选一个胜利者。 / p>
我想在cronjob中实现这个structure。
我如何计算计时器:
<?php
$timestamp = time();
$nextTwoMinute = ceil($timestamp/120) * 120;
echo json_encode(($nextTwoMinute - $timestamp));
?>
我如何通过JS递减:
var add_secs = " s";
var time_s = setInterval(update_time, 1000);
function reqListener () {
console.log(this.responseText);
}
var currTime = "";
//New request object
oReq.onload = function() {
currTime = this.responseText;
};
window.onload = function() {
//dom not only ready, but everything is loaded
var oReq = new XMLHttpRequest();
oReq.open("get", "scripts/php/calc.inc.php", true);
oReq.send();
};
function update_time() {
document.getElementById("time_left").value = currTime<0 ? currTime=117:currTime--;
$("input.circle").val(currTime);
$("input.circle").trigger('change');
}
我在没有使用cron作业的情况下找到了解决问题的方法:
$key=md5('ILOVEYOU');
$serverseed = floor(time() / 5);
srand($serverseed);
$result = rand();
$modulus_result= $result % 100;
如果有人对解决方案感兴趣:这会产生一个5秒的随机整数!
答案 0 :(得分:0)
我找到了解决这个问题的方法:
<?php
$key=md5('ILOVEYOU');
$serverseed = floor(time() / 5);
srand($serverseed);
$result = rand();
$modulus_result= $result % 100;
echo "before: ".$modulus_result."<br>";
echo "after: ".encrypt($modulus_result, $key)."<br>";
echo decrypt($modulus_result, $key);
function decrypt($string, $key){
$string = rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, base64_decode($string), MCRYPT_MODE_ECB));
return $string;
}
function encrypt($string, $key){
$string = rtrim(base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $string, MCRYPT_MODE_ECB)));
return $string;
}
?>
通过使用time(),你可以将时间()的圆形商引入nºsec你希望rand数是活跃的,然后使用模数来限制范围。在一段时间内会有一个随机数,它总是与使用time()作为参考相同。
我希望这可以帮助一些人。 您甚至可以加密此数据以进行跨平台传输。