牛骨文教育服务平台(让学习变的简单)
博文笔记

php中file_put_contents 权限的问题

创建时间:2017-06-29 投稿人: 浏览次数:6275

file_put_contents能在后台php代码中 将指定 的字符串写入服务器主机。


但是刚刚折腾了很久。。


先总结一下吧:

1

首先要用file_put_contents写入文件,就先需要突破系统自带的一些防火墙,网上许多朋友说因为selinux的原因导致无法写入文件,最简单粗暴地方法就是把sellinux关了,不过我是在kali下操作的,暂时没有遇到这方面的原因。

2

接下来就是你要写入文件夹的权限问题了。。


假设我运行的 test.php文件在html文件夹下

test.php文件中:

$filename=“test.txt”;

file_put_contents($filename,”i am the contents”);

如果这么写,那个 test.txt 就默认生成在html文件夹下,与test.php平行。

但是这么写

$filename=“testdir/test.txt”;

file_put_contents($filename,”i am the contents”);

则这个test.txt就会在html文件夹下的的testdir文件夹里面生成。。

这样很清楚吧。


再来说权限,想要写入。像上述第一种情况 就必须要html有可写的权限。第二种情况,只需要testdir文件夹有可写的权限,html则无所谓。


折腾了这么久 折腾在哪里呢??

首先 看到网上说的

$filename = ‘test.txt’

if ( is_writable($name) ) {

file_put_contents($filename,”i am the contents”);

}else {

echo “can not write”;

}

用这个 is_writable函数判断能否写入。。

就这个is_writable($name) 函数,我也不懂为何,其实我不加这层判断,实际上是可以写入的。但是,一直就是返回 “can not write“。。。


最后 我把判断删了 才发现其实可以写入。。。。。尴尬。。。。。

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。