linux下php fwrite无法写入文件

wszdw142 2011-08-08 11:19:53
<?php
$filename = "test.txt";
$contents = "测试内容";
if(is_writable($filename)){
if(($handle = fopen($filename,"a") )== false){
echo "写入文件 $filename 失败";
exit();
}
if(fwrite($handle,$contents) == false){
echo "写入文件$filename失败";
exit();
}
echo "写入文件 $filename 成功";

fclose($handle);
}else{
echo "文件$filename不可写入";
}
?>

为什么我在linux上总不能写入文件???上级目录权限是777了的。。
-------------------------------------------------------------------------

而下面这段代码是可以创建文件,但是创建的文件都是0 kb,就是说创建了,但是没法写入!!

<?php
$filename = "test2.txt";
$contents = "测试内容";

$fp = fopen($filename,'wb');
exec("chmod 777 $filename"); //执行exec命令,使生成的文件权限为777

if(fwrite($fp,$contents)==false){
echo "can't write into file";
//exit;
}

fwrite($fp,$contents."\r\n",1024);
fclose($fp);
?>

-----------------------------------------------------------------------


另外说一下,这个程序我放到我的虚拟机上是可以创建和写入的,当时放到公司的服务器上就不行了,不知道是什么原因引起的!
...全文
958 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
PIGer920 2011-08-08
  • 打赏
  • 举报
回复
你没有新文件的写权限吧
看看系统的umask
目录权限是777只能说明你可以在其中创建文件
PIGer920 2011-08-08
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wszdw142 的回复:]

引用 1 楼 piger920 的回复:

你没有新文件的写权限吧
看看系统的umask
目录权限是777只能说明你可以在其中创建文件


不是很明白啊,执行umask结果是0022 可是查了一下umask这个还是不怎么看得明白。。。
能否说得再详细点,谢谢了
[/Quote]
当前用户的umask是022的话 那么新建文件的默认权限是755
文件所属者的权限为7 组用户5 其他用户5
wszdw142 2011-08-08
  • 打赏
  • 举报
回复

ls -l的结果,生成的文件用户跟其他的不一样,不知道怎么回事
wszdw142 2011-08-08
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 piger920 的回复:]

你没有新文件的写权限吧
看看系统的umask
目录权限是777只能说明你可以在其中创建文件
[/Quote]

不是很明白啊,执行umask结果是0022 可是查了一下umask这个还是不怎么看得明白。。。
能否说得再详细点,谢谢了

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧