gpt4 book ai didi

php - fwrite或error_log无法与CLI和后台任务一起使用

转载 作者:行者123 更新时间:2023-12-03 08:58:43 25 4
gpt4 key购买 nike

我有一个基本的php脚本,可以将其写入/记录到文本文档中

<?php
$filename = 'php_log.log';
$somecontent = 'writing with fwrite!'.PHP_EOL;
if (is_writable($filename)) {
if (!$handle = fopen($filename, 'a')) {
echo "Cannot open file ($filename)";
exit;
}

if (fwrite($handle, $somecontent) === FALSE) {
echo "Cannot write to file ($filename)";
exit;
}
echo "Success, wrote ($somecontent) to file ($filename)";
fclose($handle);
} else {
echo "The file $filename is not writable";
}
error_log('logging with error_log!'.PHP_EOL,3,'php_log.log');
?>

从CLI,如果我执行 php test.php并检查php_log.log,我会看到两个写入。
但是当我尝试 php test.php &时,没有写入php_log.log

有一些我不知道的php设置吗?
谢谢!

最佳答案

可能没有锁定。
为什么要手动然后使用error_log写入文件?

  • 可以考虑使用file_put_contents()代替FILE_APPEND|FILE_LOCK。那只是追加到文件的末尾并负责锁定。
  • 启用error_reporting并将stderr重定向到一个单独的文件以了解更多信息。
    php test.php 2> php_errors.txt &
  • 关于php - fwrite或error_log无法与CLI和后台任务一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14845236/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com