我想把file1目录里的文件移动到file2,php中这样写:system('mv file1 file2’,$return);是不是不对呢?求助……
这样写是正确的。你执行代码后是否报错?还是只是没有效果?
$return变量会返回执行命令的输出的最后一行,你可以打印出来检查一下。
执行系统命令也可以使用反引号`,我比较喜欢这样用
<?php
您的采纳就是对我的支持!
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');
回头给我个采纳吧,谢谢~