【问题标题】:PHP. Cannot append to the filephp。无法附加到文件
【发布时间】:2018-09-10 22:38:19
【问题描述】:

好吧,我有一个问题。在我本地的 LAMP(14.04 LTS 32 位)上,一切都很神奇。远程服务器也是 Ubuntu 14.04(64 位)。 在生产中,我的程序成功重写了文件:

$myfileresult = fopen('taranko.csv','w+');
echo fwrite($myfileresult,"");
fclose($myfileresult);

但之后我的脚本未能附加任何信息。

$myfileresult = fopen('download.csv','a');
                fwrite($myfileresult, $ids.";".$imageLinkAlt.";".$itemNameAlt.";".$features.";".$mods[$x].";".$prices[$x].";".$stockQty[$x].PHP_EOL);
                fclose($myfileresult);

我有

ini_set('display_errors', 1);
error_reporting(E_ALL);

在我的脚本中,但 PHP 回显中确实没有错误或警告。 我试图附加这个字符串: “1701-1;http://taranko-shop.ru/..” 所以,我使用了 strace,这是我发现的:

open("/home/ci65797/web/mydomain.com/public_html/download.csv", O_WRONLY|O_CREAT|O_APPEND, 0666) = 24
2056  fstat(24, {st_mode=S_IFREG|0644, st_size=160740, ...}) = 0
2056  lseek(24, 0, SEEK_CUR)            = 0
2056  lseek(24, 0, SEEK_CUR)            = 0
2056  write(24, "1701-1;http://taranko-shop.ru/wa"..., 377) = 377
2056  close(24) 

因此,最新字符串旁边包含我尝试附加的字符串。 我的所有目录都是755,文件是644。 我应该怎么做才能解决这个问题?

【问题讨论】:

  • 您正在附加空字符串。
  • 不完全。我试图附加这个:1701-1;taranko-shop.ru/wa 写,第二个参数包含我试图附加的字符串。 @u_mulder
  • @Areso,然后在你的问题中告诉我们!如果您在此处询问时更改代码,我们应该如何知道您的代码实际做了什么?
  • “我问的是没有写下来的部分”——这正是问题所在。我们无法为您提供我们看不到的代码。 strace 不算。感谢您编辑您的问题。
  • 为什么fopen()的两次调用中的文件名不同?我怀疑这是你的问题:你的数据正在被写入,而不是你期望的文件。

标签: php apache fwrite php-5.5


【解决方案1】:

正如@Chris 建议的那样,我的脚本刚刚写入另一个文件。发生这种情况是因为我在脚本的第一部分重命名了文件,而在第二部分没有重命名。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-25
    • 2014-06-02
    • 2018-09-14
    • 2022-12-18
    • 2015-04-11
    • 2012-06-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多