复制()时PHP报告失败但文件实际被复制

时间:2012-05-16 12:56:58

标签: php linux

我遇到的问题是,当我尝试从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

有没有人知道为什么会发生这种情况以及如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

shell_exec将返回一个字符串,即此程序的输出。如果它返回一些“blablabla”并且你比较为null则它将是假的。

使用exec函数

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

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

答案 1 :(得分:0)

请尝试以下命令:

//http://es2.php.net/manual/en/function.passthru.php

passthru("cp $src $dest, $result");
var_dump($results);

//http://es2.php.net/manual/en/function.system.php

system("cp $src $dest", $retval);
var_dump($retval);