当 copy() 时 PHP 报告失败,但文件实际上已被复制

当 copy() 时 PHP 报告失败,但文件实际上已被复制

我遇到一个问题,当我尝试从 php 复制一些文件时,我收到失败的响应,但文件实际上已被复制。这是一个问题,因为当它失败时我会记录一条错误消息并退出脚本,但脚本还有很多事情要做。

我尝试了两种不同的复制方式:

if(!copy("/var/www/html/smicadmin.properties", "/etc/conf/".$new_dir."/smicadmin.properties"))

if(shell_exec("cp $src $dest")==null)

我已标记“conf”,以便 SELinux 允许 apache 对其进行写入:

chcon -R -t httpd_sys_script_rw_t /etc/conf

有谁知道为什么会发生这种情况以及如何解决它?

答案1

答案是:

shell_exec 将返回一个字符串,即该程序的输出。如果它返回一些“blablabla”,并且您将其与 null 进行比较,则结果为 false。

使用函数 exec

http://www.php.net/manual/en/function.exec.php

并将 return_var 与零进行比较——如果成功,它将等于零,如果失败,则等于其他值。

相关内容