gpt4 book ai didi

PHP file_put_contents 不截断 CIFS 挂载中的文件

转载 作者:搜寻专家 更新时间:2023-10-31 21:14:27 25 4
gpt4 key购买 nike

我有一个奇怪的问题,PHP 的 file_put_contents()fwrite()(在用 fopen('filename', 'w') 打开文件句柄之后) ;) 函数不会截断目标文件,如 PHP 文档中针对 fwrite() 所述。该文件驻留在希捷BlackArmor NAS设备上,该设备使用CIFS挂载在Linux服务器(Ubuntu 10.04)上,如下所示:

mount -t cifs -o defaults,credentials=/etc/smbpass/demo.smbpass,uid=1005,gid=1005,dir_mode=0770,file_mod=0660//xxx.xxx.xxx.xxx/演示/文件/var/www/mysite/src/files/

例子:

myfile.txt 的内容:thisisabigfatpandaonwheelsgoingdownthestreet

使用代码运行 PHP 脚本:file_put_contents('myfile.txt', 'blah');

myfile.txt 的内容:blahisabigfatpandaonwheelsgoingdownthestreet

文件的预期内容显然是 blah,但事实并非如此。

有什么想法吗?

最佳答案

我在自己的 samba 设置(Debian 6 x64 和 samba 3.5.6.)上有完全相同的症状。我最终将其缩小到以下导致完全相同行为的选项:

large readwrite = no

当设置为 yes 时(或移除,因为 yes 是默认设置),问题就消失了。

已提交针对 Debain 和上游 Samba 的错误报告:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=699461
https://bugzilla.samba.org/show_bug.cgi?id=9622

关于PHP file_put_contents 不截断 CIFS 挂载中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12211629/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com