1
我試圖從rar文件夾中刪除文件。 如果您運行/usr/bin/rar d rar_file.rar del.txt
此命令從rar_file.rar刪除文件del.txtphp exec從rar刪除文件
我正在使用exec()運行在php中,但它不工作。
<?php
$file = realpath("temp/temp.rar");
chmod($file, 0777); //make sure I can handle the file
if(file_exists($file)){ //Make sure that the file exists
$rar = escapeshellarg($file);
echo "/usr/bin/rar d $rar teste.txt"; //Lets see the command
exec("/usr/bin/rar d $rar teste.txt", $r);
}
echo "\n";
print_r($r);
?>
這裏是我的輸出:
/usr/bin/rar d '/var/www/temp/temp.rar' teste.txt
Array
(
[0] =>
[1] => RAR 3.90 beta 2 Copyright (c) 1993-2009 Alexander Roshal 3 Jun 2009
[2] => Shareware version Type RAR -? for help
)
沒有刪除從RAR的teste.txt文件。
但是,我複製了命令/usr/bin/rar d '/var/www/temp/temp.rar' teste.txt
並在終端中執行。 這裏是我的輸出:
[email protected]:~$ /usr/bin/rar d '/var/www//temp/temp.rar' teste.txt
RAR 3.90 beta 2 Copyright (c) 1993-2009 Alexander Roshal 3 Jun 2009
Shareware version Type RAR -? for help
Deleting from /var/www/temp/temp.rar
Deleting teste.txt
Done
完美的作品,但在PHP的exec沒有。 我不認爲它的文件權限導致用戶www-data創建rar文件(我之前創建的),並將權限設置爲777而沒有問題。
我使用的是Linux,當然。
我在做什麼錯了? 謝謝!
我不喜歡我所做的,但工作。我在下一分鐘添加了一個cron作業,並且cronjob從rar中刪除了這個文件。可以通過運行exec(「crontab file.txt」)輕鬆添加cronjob。也許我用它作爲解決方案,但我仍然想知道exec爲什麼不起作用 – StiveKnx 2011-06-14 00:17:24
查看消息的error.log或在exec命令後面加上2&1,以顯示錯誤輸出。 – mario 2011-06-14 00:24:00
謝謝,我找到了解決方案。添加2>&1顯示我拒絕創建臨時rar文件的權限。所以我只是修改了www路徑(劇本從哪裏跑),並知道作品! – StiveKnx 2011-06-14 00:33:23