2012-05-16 23 views
0

我有問題,當我嘗試複製一些文件從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 

沒有人有任何線索爲什麼會發生這種情況,以及如何解決這個問題?

+0

你爲什麼不做'var_dump(COMMAND);'看看它報告什麼,所以你知道你要比較的東西 – Alex

+0

@ w0rldart,因爲我誤解了shell_exec的用法;)謝謝! – Nicsoft

回答

1

了shell_exec將返回一個字符串,這個程序的輸出。如果它返回一些「blablabla」,你比較爲空它將是錯誤的。

使用功能EXEC

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

,並與零比較return_var - 如果成功,這將是等於零,在失敗的情況下,其它的值​​。

+0

這工作,謝謝! – Nicsoft

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);