php file_put_contents 保存不了,关于file:php file_put_contents函数不起作用

为什么file_put_contents拒绝为以下代码工作?

$f = file_put_contents("files/r.js","Some text here");

if ($f) print 1;

else print 0;

如果您删除该代码,将会发生什么。.页面的其余部分是否正常显示?

谁是"它",谁给你一个错误? 您以什么形式收到此错误? 您确定完全可以看到PHP错误吗?

你读过这个问题吗? 他说错误报告已经打开。 如果您不打算阅读,请不要发表评论或回答问题。

@ jmort253让您知道,如果错误报告确实打开了,则可以看到完整而明确的错误消息。 如果没有,则错误报告未正确打开。 那就是逻辑。

嗯,尽管可以启用error_reporting,但display_errors是否打开? 否则将记录错误,但不会在页面中显示。

可能是权限问题

目录/files是否已更改为777?有时,如果没有足够的权限,php将不允许您访问目录。我不知道空白错误。

尝试查看它是否具有足够的权限(如果没有),然后将其设置为777并尝试。

这是一个不好的答案,也是一个坏主意:stackoverflow.com/questions/2338641/

换句话说,您让任何人都有足够的权限来写东西。 。

惊人 !!!经过数小时的挫折,终于我找到了解决您的方法。非常感谢你!!!!!!!加一

@joemurphy如果您在生产环境中进行测试,然后在其可以正常工作的情况下将777留在那儿,这是一个坏主意,而不是将测试仅仅看作是为了表明或消除许可成为问题的可能性,以此作为前进的一步。我认为答案应该已经清楚了。

Famver,好的答案:您救了我很多痛苦!我建议人们也查看此相关问题,以获取有关正确目录权限的良好建议(请参阅"错误答案"注释):stackoverflow.com/questions/4917811/

@Parapluie但是,当您尝试使用777时,则必须找出应该具有的用户和组,然后解决问题。 777仅是故障排除过程中可以使用的步骤,并且以后不要使用此步骤,因为从安全角度来看这是个坏主意。

@Johan完全正确...我想我应该把这部分明确表示出来:-)

就是这样谢谢

@joemurphy您的链接没有任何意义。无论是否为777,能够执行php文件都是一个巨大的漏洞。至少有人可以通过使用虚拟php消耗资源来连续关闭服务器,直到服务器修复为止。实施用户控制的目录时,应该在htaccess中处理该问题,并且与执行位无关,这只会给伤口带来麻烦。

这里有一些需要注意的地方1。显然,除非该目录是/ tmp,否则您不会将生产目录保留为777。 2.目录需要按顺序可执行,并且可执行目录并不暗示文件是可执行的。 3.这个答案的重点是确定权限是否是问题所在,而不是在777生产环境中运行。

您是使用文件系统上的完整路径还是要使用URI?我认为这个PHP函数希望您提供在文件系统上找到文件的路径。

相对路径应该没问题。

您可能需要确保文件存在并将其权限设置为777。有时我发现仅将目录权限设置为777是不够的,但是文件也必须已经存在。

这不是猜测。这是从我的专业经验中得出的。我遇到了无法写入文件的情况,除非该文件存在。您从哪里获得"猜测"?你甚至读过问答吗?

这是一个不好的答案,也是一个坏主意:stackoverflow.com/questions/2338641/

我们已经经历了这一点,因此需要一种变通方法(无论此处提到的方法,权限和其他任何内容)。当所有其他修复失败时,我们发现它可以链接到SELinux创建的限制。

如果您使用的是Windows,则以下解决方案在运行php 5.5.38的Windows 10上非常适合我

如果您在Windows / IIS上遇到此问题,请尝试以下操作:

转到您要写入的文件夹,然后右键单击它,然后选择属性。

选择安全选项卡

点击编辑

点击添加

点击高级

单击立即查找

从"用户"列表中,选择" IUSR",然后单击"确定"。

再次单击

IUSR将显示在标有"用户名组"的顶部框中

选择IUSR并在" BATCH的权限"列表视图中授予必要的权限。

单击"应用",然后完成。

对于不同版本的Windows,步骤可能会稍有不同。这也适用于ASP.NET,尽管我认为您添加的用户是网络用户(NETWORK AND OR NETWORK SERVICE用户)以及IUSR。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值