2012-07-02 71 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`