社区
基础编程
帖子详情
fopen的问题,无法理解,在本地就是不能打开文件
victorzk
2007-11-15 04:26:58
$handle = fopen("/home/rasmus/file.txt", "w");
if(!handle){
print "yes";
}else{
print "no";
}
系统是linux系统,查看php参数,php版本4.3.9,allow_url_open为打开on
但是不管怎样总是无法打印“no”,总是打印yes,请问这是为什么呢?是什么原因呢?
...全文
296
14
打赏
收藏
fopen的问题,无法理解,在本地就是不能打开文件
$handle = fopen("/home/rasmus/file.txt", "w"); if(!handle){ print "yes"; }else{ print "no"; } 系统是linux系统,查看php参数,php版本4.3.9,allow_url_open为打开on 但是不管怎样总是无法打印“no”,总是打印yes,请问这是为什么呢?是什么原因呢?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
victorzk
2007-11-19
打赏
举报
回复
改成相对路径也不行,提示failed to open stream: Permission denied。。。。
哭了,一个星期没有解决这个问题了,我快崩溃了
有理想的草根
2007-11-19
打赏
举报
回复
chmod("/home/rasmus/file.txt", 0755);
加入这句话后,再读下这个文件试试返回的是什么?如果返回的是true则说明该用户可以访问,否则该文件,该用户不能被访问。
这句话,在读入之前处理。
试下吧。
wgt20
2007-11-19
打赏
举报
回复
第七行!handle=>!$handle
phpknows
2007-11-17
打赏
举报
回复
你用ROOT改过HOME的属性么?WEB服务器的用户和HOME属于一个组么?
建议用相对路径比较好。
phpknows
2007-11-16
打赏
举报
回复
$handle = fopen( "/home/rasmus/file.txt ", "w ");
if($handle){
print "yes ";
echo is_file('/home/rasmus/file.txt') ? 'yes':'no';
}else{
print "no ";
}
逸学堂
2007-11-16
打赏
举报
回复
使用sudo执行,或者在root用户执行
victorzk
2007-11-16
打赏
举报
回复
错误提示是:
Notice: Undefined variable: handle in /project/redirect.php online 3
Warning: fopen(/home/rasmus/file.txt): faailed to open stream: Permission denide in /project/redirect.php on line 3
Notice : Undefined variable: handle in /project/redirect.php on line 7
yes
redirect.php就是我写的php文件第3行是$handle = fopen( "/home/rasmus/file.txt ", "w ");
第7行是if(!handle){
我服了啊,文件夹权限都已经打开了啊?急死了!
victorzk
2007-11-16
打赏
举报
回复
我用root用户执行还是不行啊??为什么呢?是不是还有其他说法啊?
逸学堂
2007-11-15
打赏
举报
回复
在tmp中创建试试
把display_error开关打开,查看一下具体错误吧。
安你的操作,对应手册应该没有问题的。
open() 将 filename 指定的名字资源绑定到一个流上。如果 filename 是 "scheme://..." 的格式,则被当成一个 URL,PHP 将搜索协议处理器(也被称为封装协议)来处理此模式。如果该协议尚未注册封装协议,PHP 将发出一条消息来帮助检查脚本中潜在的问题并将 filename 当成一个普通的文件名继续执行下去。
如果 PHP 认为 filename 指定的是一个本地文件,将尝试在该文件上打开一个流。该文件必须是 PHP 可以访问的,因此需要确认文件访问权限允许该访问。如果激活了安全模式或者 open_basedir 则会应用进一步的限制。
如果 PHP 认为 filename 指定的是一个已注册的协议,而该协议被注册为一个网络 URL,PHP 将检查并确认 allow_url_fopen 已被激活。如果关闭了,PHP 将发出一个警告,而 fopen 的调用则失败。
注意: 所支持的协议列表见附录 N, 支持的协议/封装协议列表。某些协议(也被称为 wrappers)支持 context 和/或 php.ini 选项。参见相应的页面哪些选项可以被设定(例如 php.ini 中用于 http wrapper 的 user_agent 值)。
注意: 对 context 的支持是 PHP 5.0.0 添加的。有关 context 的说明见Streams。
注意: 自 PHP 4.3.2 起,对所有区别二进制和文本模式的平台默认模式都被设为二进制模式。如果在升级后脚本碰到问题,尝试暂时使用 't' 标记,直到所有的脚本都照以下所说的改为更具移植性以后。
mode 参数指定了所要求到该流的访问类型。可以是以下:
victorzk
2007-11-15
打赏
举报
回复
对啊,我就是想不存在就创建,问题是不创建啊,w,w+,x,x+都试验了,都不行啊
duanjianbo26
2007-11-15
打赏
举报
回复
你打开方式是"W",如果不存在它会自己创建一个file.txt
victorzk
2007-11-15
打赏
举报
回复
回复逸学堂,我照你的去做了,但还是不好使啊,还是打印yes 啊
wisword
2007-11-15
打赏
举报
回复
if(!handle){
==》
if(!$handle){
逸学堂
2007-11-15
打赏
举报
回复
需要在php.ini中的open_basedir配置
把/home/rasmus/目录加到open_basedir后面就可以了
socket文件传输程序(用
fopen
)
socket文件传输,自己写的,可以用,谢谢各位下载
socket文件传输程序(用
fopen
).rar
fopen
socket文件传输程序(用
fopen
).rar
VC文件操作实现本地文件另存为
实现的是基于c语言的本地文件另存为的文件操作,开发环境是VC++6.0。控制台应用程序,首先打开本地文件进行读取,接着建立新文件进行写入。代码简单易懂,亲测保证可以运行。
C语言文件操作
fopen
, fclose, mkdir详解
本文给大家详细介绍了下C语言的文件操作函数
fopen
, fclose, mkdir的用法及示例,非常的简单实用,有需要的小伙伴可以参考下。
Android JNI调用-文件操作
Android虚拟机允许你的应用程序源代码通过JNI调用实现本地代码的方法,需要在应用程序中使用关键字native声明一个或多个方法表明该方法是通过本地调用实现的
基础编程
21,893
社区成员
140,347
社区内容
发帖
与我相关
我的任务
基础编程
从PHP安装配置,PHP入门,PHP基础到PHP应用
复制链接
扫一扫
分享
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章