2010-06-02 31 views
3

任何一個可以請讓我知道,我爲什麼不能得到結果的PHP函數

exec('unzip gallery.zip',$return); 
print_r($return); 
+0

$ return是一個數組 – 2010-06-02 09:34:09

回答

5

你檢查瞭解壓縮的返回值嗎?在標準輸出流上沒有提供錯誤消息,所以如果失敗,數組將爲空。

<?php 
    $result = array(); 
    exec("unzip archiv.zip", $result, $returnval); 
    print_r($result); 
    print_r($returnval); 
?> 

解壓縮是否按預期工作?如果文件已經存在,它可能會要求覆蓋等,並停止工作流程。該結果不會被捕獲。

0

你初始化使用前變量$return

如果您正在運行Unix或Linux,是否安裝了包unzip? (我不確定你可以在Windows上做到這一點)

+0

嗨,我需要在php.ini中啓用任何推薦嗎? – 2010-06-02 09:39:31

0

將錯誤寫入stderr,並且在使用exec,backticks或shell_exec函數時不顯示。

passthru()確實輸出錯誤流(以及stdout)。

PS:它大概之一:未找到

文件:是否存在gallery.zipcwd。使用絕對路徑和escapeshellarg() te肯定。

文件權限: PHP是允許將提取出的文件到CWD或指定TARGETPATH?