2009-10-27 73 views
2

如何使用相對路徑使用exec命令從php運行外部程序?php exec命令 - 相對路徑不工作

<?php 

    exec('program_name ......'); 

?> 

只有當program_name.exe和這個php腳本位於同一個目錄時,這纔有效。例如

exec('something/program_name ......'); 

如果php腳本不在'something'目錄下,它就不起作用。有人知道如何在exec命令中使用相對路徑嗎?謝謝

回答

3

使之絕對,相對路徑是邪惡的。

exec(dirname(__FILE__) . 'program_name ......'); 
+0

如果「program_name」和腳本位於同一個目錄下,但是如果在op的情況下「php腳本不在'something'目錄下」,那麼這個功能會起作用。 – GZipp 2009-10-27 15:48:02

+0

@GZipp,作者沒有給出足夠的信息。他的路徑是什麼? PHP腳本或其他包含未指定的路徑?我對一般性問題給出了一般性答覆。 – 2009-10-27 16:50:17

+0

但你的答案似乎比我一般更具體。它適用於當前文件路徑中的路徑,但不適用於該路徑之外的相對路徑。無論如何,我只是指出了一個你的答案會起作用的案例,以及一個不會的案例。 – GZipp 2009-10-27 17:19:02

4

要回答你的問題,「如何在exec命令中使用相對路徑?」

$rel = 'something/program_name'; 
$abs = realpath($rel); 
exec($abs);