我不想使用" shell,exec等" ...只在php中使用循环!
我的理解是在这种情况下:
我需要这样做,如果可能的话,一个文件用循环执行单个代码直到完成某行
项目结构的想法:
click here
答案 0 :(得分:0)
// (Note:
// The writeLog() function has been set up previously and is a
// trivial function that adds timestamped lines into a logfile.)
$PIDfile='/tmp/myPID'; // Store process ID in this file
// If a deamon is already running, display its PID and abort:
if (file_exists ($PIDfile)) {
if (is_readable ($PIDfile))
die ($PIDfile . " already exists, PID=" .
file_get_contents ($PIDfile) . " (stale PID file?)\n");
else
die ($PIDfile . " already exists, but is not readable.\n");
}
// Set execution directives if we're running a PHP version prior to 5.3.0
// (ticks are deprecated as of PHP5.3.0 and will be removed from PHP6.0.0):
if (version_compare (PHP_VERSION, '5.3.0', '<'))
declare (ticks = 1);
// Fork off the background (daemon) process:
$pid = pcntl_fork ();
if ($pid == -1) {
die ("Fatal: unable to fork.\n");
} elseif ($pid)
exit (); // We are the parent process
// If we arrive at this point, we are the child process.
// Detach from the controlling terminal:
if (posix_setsid () == -1)
die ("Fatal: unable to detach from terminal.\n");
// Register child PID:
$posid = posix_getpid ();
$fp = fopen ($PIDfile, "w");
fwrite ($fp, $posid);
fclose ($fp);
// Set up signal handlers:
pcntl_signal (SIGTERM, "SIGhandler");
pcntl_signal (SIGHUP, "SIGhandler");
// Log successful deamonization:
writeLog ("Daemon spawned, PID = " . $posid);
// Daemon payload code starts here:
while (1) {
// Do all kinds of interesting stuff that does not require any user
// input or screen output. In my case this consisted of file I/O and
// communication with a server using various sockets.
}
// EOF
希望这有帮助!毋庸置疑,上面的代码是从我的代码太平间复制并粘贴多年的东西,并且不提供任何担保或保证。享受!
答案 1 :(得分:0)
后台流程执行: code font
<?php
set_time_limit(7200);
ignore_user_abort(true);
fopen('./.exec','w');
$conn = mysql_connect($servidor,$usuario,$senha);
mysql_select_db($bdados);
while (file_exists('./.exec')) {
clearstatcache();
if (file_exists('./.in') && filesize('./.in')) {
$out = fopen('./.out','w');
$query = mysql_query(file_get_contents('./.in'));
$campos = mysql_num_fields($query);
$sep = '';
for ($i = 0; $i < $campos; $i++) {
fwrite($out,$sep.mysql_field_name($query,$i));
$sep = ';';
}
fwrite($out,"\n");
while ($res = mysql_fetch_row($query)) {
for ($i = 1; $i < $campos; $i++) {
fwrite($out,$sep.$res[$i]);
$sep = ';';
}
fwrite($out,"\n");
}
fclose($out);
fclose(fopen('./.in','w'));
}
sleep(1);
}
?>
也许是这样的,你说什么?
我想让它工作,没有mysqli&amp; MySQL的。