文件读写php
① php读写权限问题,服务端可以随意读写文件吗
对于windows下的服务器,一般就是对目录做权限限制,使得匿名访问服务器的用户(就是普通用户通过浏览器访问服务器)除了自家的网站目录之外,对其他目录没有读写权限。
对于linux下的服务器,因为linux的服务器比如apache等,是以apache这个用户运行的,linux又有完善的权限控制策略,对于系统文件(root用户),其他用户,除非这个文件或者文件夹对你有读写权限,php才能操作。
当然没这么简单,在php的配置文件里还可以配置php能调用哪些对系统敏感的函数,比如列目录,创建文件等。
未知用户获得权限,就是说明你的网站被黑了么~哈哈
通过一些漏洞,hack拿到你网站的webshell,搞到你连接数据库的用户名密码,那当然就是可以为所欲为了。
对于虚拟空间,php和ftp都有对整个目录的操作权限应该,(我没用过虚拟空间),但是对于这个目录的父目录肯定没权限了。如果是自己搭建一个服务器,你就会了解很多了。
慢慢自己会知道的,三两句也说不清楚
② php那种方法读写文件最快
一次性读取最快
可以采用file_get_contents() 函数
file_get_contents() 函数把整个文件读入一个字符串中。
例子
<?php
echofile_get_contents("test.txt");
?>
望采纳 Thx
③ php 读写文件和数据库哪个快
1、直接读文件相比数据库查询效率更胜一筹,而且文中还没算上连接和断开的时间。
2、一次读取的内容越大,直接读文件的优势会越明显(读文件时间都是小幅增长,这跟文件存储的连续性和簇大小等有关系),这个结果恰恰跟天缘预料的相反,说明MYSQL对更大文件读取可能又附加了某些操作(两次时间增长了近30%),如果只是单纯的赋值转换应该是差异偏小才对。
3、写文件和INSERT几乎不用测试就可以推测出,数据库效率只会更差。
4、很小的配置文件如果不需要使用到数据库特性,更加适合放到独立文件里存取,无需单独创建数据表或记录,很大的文件比如图片、音乐等采用文件存储更为方便,只把路径或缩略图等索引信息放到数据库里更合理一些。
5、PHP上如果只是读文件,file_get_contents比fopen、fclose更有效率,不包括判断存在这个函数时间会少3秒左右。
6、fetch_row和fetch_object应该是从fetch_array转换而来的,我没看过PHP的源码,单从执行上就可以说明fetch_array效率更高,这跟网上的说法似乎相反。
④ PHP如何解决多进程同时读写一个文件的方法
/*
*flock(file,lock,block)
*file 必需,规定要锁定或释放的已打开的文件
*lock 必需。规定要使用哪种锁定类型。
*block 可选。若设置为 1 或 true,则当进行锁定时阻挡其他进程。
*lock
*LOCK_SH 要取得共享锁定(读取的程序)
*LOCK_EX 要取得独占锁定(写入的程序)
*LOCK_UN 要释放锁定(无论共享或独占)
*LOCK_NB 如果不希望 flock() 在锁定时堵塞
/*
if (flock($file,LOCK_EX))
{
fwrite($file,'write more words');
flock($file,LOCK_UN);
}
else
{
//处理错误逻辑
}
fclose($file);
)
⑤ 关于PHP读写文件
相关
php函数
:
fopen()打开文件。
格式如:fopen("文件路径","r")。
fopen()函数有参数第一个参数要指明文件,第二个参数可以是r,w等,读文件时就可以是r,写文件时可以是w。
fwrite()和
fputs()写文件。
fclose()
关闭文件
。
fgets()读取记录。最常用的是以上这些函数。