【问题标题】:how to swap the content of two files in PHP如何在PHP中交换两个文件的内容
【发布时间】:2012-08-20 09:10:19
【问题描述】:

我想用php交换两个文件的内容。但似乎文件执行是在脚本末尾以一种奇怪的方式处理的。因为它总是要么只将内容写入一个文件,要么什么也没发生,但文件被重写了。

我尝试了以下方法:

rename($file1,$file2_temp);
rename($file2,$file1); // replace the file1
rename($file2_temp,$file2); // save the temporary file2 as the file2

我也尝试将其放入fopenflock 语句中,但没有成功。

有人有解决办法吗?

【问题讨论】:

  • 思路还行,可能你没有权限
  • 在黑暗中拍摄 - 尝试在每行之间放置一个usleep(100)...
  • 还有:重命名($file2,$file1); // 替换 file1 不替换 file1,它替换 file2 name !使用文件 1 名称;
  • 试过你的代码,它对我有用,没有问题。您是否为变量($file1、$file2_temp 和 $file1)输入了正确的路径和文件名?还要检查您是否有权这样做。重命名函数如果成功则返回 true,否则返回 false,因此添加例如: $ren1 = rename($file1, $file2_temp); $ren2 = 重命名($file2, $file1); $ren3 = 重命名($file2_temp, $file2);回声“输出:$ren1 $ren2 $ren3”;它应该像 1 1 1 一样回显 3x 1 (true)
  • 谢谢,我会试试的..

标签: php filesystems rename fopen swap


【解决方案1】:

使用文件名时,请确保使用完整路径,例如:

rename ("/folder/file.ext", "/folder/newfile.ext");

【讨论】:

  • 谢谢。但是是的,我使用完整路径.. 你能在你的服务器上检查一下吗?
【解决方案2】:

我想通了,代码是正确的,问题是我的脚本以某种方式运行了两次,因此它来回覆盖文件:( 我现在必须弄清楚为什么它会运行两次,但谢谢大家!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-11
    • 2016-10-24
    • 1970-01-01
    • 1970-01-01
    • 2011-04-04
    • 1970-01-01
    • 2017-08-10
    相关资源
    最近更新 更多