在windows下工作的小伙伴们应该很熟悉,windows下的径分隔符是“\”而不是“/”,但我们在写入径时不能以钦定的“\”为分隔符
【注意】fopen函数不能理解“\”分隔符,如果你想要使用“\”,那么要使用转义,如写成:C:\\wamp64\\www\\text.txt这种写法也是可以的,函数也能理解,不会报错。但即使这样,也不推荐使用“\”,因为在OS(mac)下只能识别“/”不能识别“\”
上一小节介绍的是绝对径的写法,但这样却带来了另外一个问题:服务器的目录结构可能会有较大的改变,这时原来写的绝对径就要全部重写了,比如在我的电脑上的目标文件径是C:/wamp64/www/text.txt,如果我把www文件夹改名为penghuwan呢?原来写入的径参数就失效了。所以我们引入了相对径的写法:
• $_SERVER是PHP的超级全局变量(在代码任何地方都可访问,类型是数组),通过$_SERVER[DOCUMENT_ROOT]可取到服务器的默认根目录
“a”:只追加文件,与“w”类似,区别是“w”删除原有的内容,“a”不删除原有内容,只追加内容
运行后打开C:/wamp64/,发现文件内容并没有改变,说明由于没有设置相应的权限,操作被忽略了
很全面,但我觉得这张表对新手有些不太友好,让人看后不知多云。 r是只读,w是只写(原来有的内容全删除),a是追加(不删除原有内容),这都好理解。
但r+,w+,和a+的区别和联系讲的实在太模糊了呀。 这里我就想详细地讲一下r+,w+,和a+三者的区别和联系:
下面我依次演示上述的结论,首先我们没有写入的时候文本是”I am initialized value”(意为我是初始值)
运行后,我们发现”I am initialized value”已经被删除了,然后才加上了“w+ mode”这段新文本
【注意】r+,a+,w+还有一个区别是a+,w+在文件不存在时则创建文件,r+文件不存在时报错
【吐槽】:关于r+和w+,a+的区别,我找了网络上,包括W3C和各种博客文章以及那本“PHP圣经”上的各种资料,发现都是一笔带过去的,这也是我写这篇文章的原因
推荐:
网友评论 ()条 查看