php中使用system函数执行linux系统命令mv怎么不行呢?

我想把file1目录里的文件移动到file2,php中这样写:system('mv file1 file2’,$return);是不是不对呢?求助……

这样写是正确的。你执行代码后是否报错?还是只是没有效果?

$return变量会返回执行命令的输出的最后一行,你可以打印出来检查一下。


执行系统命令也可以使用反引号`,我比较喜欢这样用

<?php
echo `mv file1 file2`;

 

您的采纳就是对我的支持!

追问

echo 'Return value: ' . $return;返回的值为1,文件没移动成功。我先是用system("cd /var/www/php");到file1和file2的上级目录,然后再用system('mv file1 file2’,$return);移动文件。请问这样是不是有问题呢?

追答

这样是有问题的。cd要和执行的命令写在一起,因为它们是两次系统调用。
看我交互模式下输出的结果:
Interactive shell
php > `cd /Users/admin`;
php > `rm data`;
rm: data: No such file or directory
php > `cd /Users/admin; rm data`;
php >

追问

那请问怎样才能将cd和mv一起使用,达到移动文件的目的呢?

追答

晕。你看看我贴上去的代码。

追问

在php里,怎么用system函数实现呢?

追答

system('cd /Users/admin; rm data');

追问

system('cd /var/www/php; mv file1 file2');还是没成功。不过十分谢谢你的耐心回答。

追答

我的作法肯定是没错的。

你要注意你的权限问题。你用交互模式试试。
打开terminal,输入php -a。先在/var/www/php下试试,在这里执行是不用cd的。然后再切换到其他目录。

php还有个方法可以全局性地改变当前工作目录:
chdir('/var/www/php');

回头给我个采纳吧,谢谢~

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-07-02
其实php有一个执行字符串的函数eval类似于js
相似回答