2012-07-02 225 views
-2

我想用php頁面中的perl調用替換文本文件中的一個單詞。從php執行perl命令

我嘗試以下

`perl -pi -e 's/foo/bar/g' /tmp/newxml.xml`; 

system('perl -pi -e \'s/foo/bar/g\' /tmp/newxml.xml', $retval1); 

exec('perl -pi -e \'s/foo/bar/g\' /tmp/newxml.xml', $retval1, $retval2); 

和它不工作。

我試圖follwoing

system('perl -v > /tmp/newxml.xml', $retval1); 

和工作,所以我想它不是一個權限問題。

我直接在shell上執行該命令並正常工作。任何想法有什麼不對?

+0

你能不能解釋一下'不working',我嘗試過了,一切正常。 – Toto

+1

所有的命令都無法替換指定文件中的單詞。 我的未來調查顯示http或apache用戶不是sudoer,因此無法執行給定的命令。 – user1263746

回答

1

嘗試:

system('perl -pi -e ''s/foo/bar/g'' /tmp/newxml.xml', $retval1); 

system("perl -pi -e 's/foo/bar/g' /tmp/newxml.xml", $retval1); 
+0

不幸的是沒有工作:( – user1263746

0
#!/usr/bin/perl 
use strict; 

`echo 'mypassword' | gpg --passphrase-fd 0 --output outfile --decrypt inputfile`