php中file_put_contents 权限的问题
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“。。。
最后 我把判断删了 才发现其实可以写入。。。。。尴尬。。。。。
- 上一篇: ajax 即点即改
- 下一篇: jquery 即点即改.......