在PHP代码中,在我的情况下正确使用shell_exec

问题描述

我对如何将日志正确保存在目录中有疑问。我的php代码:

public static function log(test $testination) {

    echo($testination->getDetails()."\n");
    
     $log_filename = shell_exec("cd; ~/log/");
     $log_filename2 = "log";
 
    if (!file_exists($log_filename2))
    {
        mkdir($log_filename,0777,true);
    }

    $log_file_data =$log_filename.'/logs_' . date('d-M-Y') . '.log';
    file_put_contents($log_file_data,var_dump($testination) . "\n",FILE_APPEND);

}

在此代码中,我在与PHP文件相同的位置创建一个文件夹,然后在该文件夹不存在的情况下创建文件夹日志。

我想保存在开头(只是cd),然后创建日志文件夹(如果该文件夹不存在,请尝试此代码)

 $log_filename = shell_exec("cd; ~/log/");

我收到警告/错误

PHP Warning:  file_put_contents(/logs_18-Aug-2020.log): failed to open stream: Permission denied in /test/test/Helper.php on line 318

任何想法怎么做?请卡住。

任何帮助将不胜感激。

解决方法

这不是应该使用file_put_contents的方式:它不知道有关更改目录的任何尝试,因为这不会影响PHP的执行。如果要获取当前PHP文件的目录,可以使用basename(__DIR__)

Additionall,cd; ~/log/也无法在您的Shell中工作。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...