目前我的解决方案是:
exec('php file.php >/dev/null 2>&1 &');
Run Code Online (Sandbox Code Playgroud)
并在file.php中
if (posix_getpid() != posix_getsid(getmypid()))
posix_setsid();
Run Code Online (Sandbox Code Playgroud)
我有什么方法可以用exec做到这一点?
假设这段代码:
<?php
date_default_timezone_set('UTC');
$time = gmmktime(14, 50, 0, 5, 12, 2013);
echo date('Y-m-d H:i:s O', $time).'<br />';
echo gmdate('Y-m-d H:i:s O', $time).'<br />';
date_default_timezone_set('GMT');
$time = gmmktime(14, 50, 0, 5, 12, 2013);
echo date('Y-m-d H:i:s O', $time).'<br />';
echo gmdate('Y-m-d H:i:s O', $time);
?>
Run Code Online (Sandbox Code Playgroud)
在我的本地服务器上,我得到输出:
2013-05-12 14:50:00 +0000
2013-05-12 14:50:00 +0000
2013-05-12 14:50:00 +0000
2013-05-12 14:50:00 +0000
Run Code Online (Sandbox Code Playgroud)
但在生产中,相同的代码产生:
2013-05-12 10:50:00 -0400
2013-05-12 14:50:00 +0000
2013-05-12 14:50:00 +0000
2013-05-12 14:50:00 +0000
Run Code Online (Sandbox Code Playgroud)
更改机器的时间不会以任何方式影响输出.
一些信息:
$ date +%Z
GMT
$ date +%z
+0000 …Run Code Online (Sandbox Code Playgroud) 假设我有一张桌子:
col1, col2, col3
1 0 1.3
0 0 0
0 1 0
1 1.5 1
Run Code Online (Sandbox Code Playgroud)
现在,假设每行的"权重"计算如下:
(col1 > 0 ? 1 : 0) + (col2 > 0 ? 1 : 0) + (col3 > 0 ? 1 : 0)
Run Code Online (Sandbox Code Playgroud)
如何选择所有行的总重量?
根据我给出的数据,总重量是2 + 0 + 1 + 3 = 6
$test=1;
{
$test=2;
}
var_dump($test);
Run Code Online (Sandbox Code Playgroud)
这个输出是2.我原以为1?
这些花括号有什么意义?它们是否有一些特殊用法,或者它只是允许语法不会导致解析错误?