资讯专栏INFORMATION COLUMN

PHP文件操作及实例:留言板

fizz / 2659人阅读

摘要:设定位置为文件尾加上。五实例留言板添加写入锁及防阻塞释放写入锁及防阻塞写入锁定失败不打开文件读取,无法加锁添加读取锁及防阻塞释放读取锁及防阻塞读取锁定失败,,用户名标题内容提交

一、文件操作函数
1.创建文件:touch("./xxx.php");
bool touch ( string $filename [, int $time = time() [, int $atime ]] )
2.复制文件:copy("./xxx.php","./yyy.php");
3.移动或重命名:rename("./xxx.php","./yyy.php");
4.删除文件:unlink("./xxx.php");
5.截取文件:ftruncate("./xxx.php",$size);
6.文件内容操作:

a.file_get_contents("./xxx.php");获取文件
b.file_put_contents("./xxx.php","aaa");写入文件
注:可以远程读取文件,如:file_put_contents("./xxx.php",file_get_contents("http://www.baidu.com"));
C.读文件readfile("http://www.baidu.com");
d.$arr=file("./xxx.php"):将文件存为数组,每一行是一个元素

注:以上涉及读取文件内容的函数无需先打开文件

二、文件的打开与关闭
1.$open=fopen("./xxx.php","r");
resource fopen ( string $filename , string $mode [, bool $use_include_path = false [, resource $context ]] )
注:附加Mode:b操作二进制文件时加上,t文本文件

2.fclose($open);
3.fwrite($open,"aaaa");可以更改fopen的mode,改变每次写入是否覆盖
4.fgetc($open);一次读取文件一个字符
5.feof($open);指针到文件结尾返回true,可用作if判断
6.fgets($open);一次读取文件一行
7.fread($open,1024);一次读取指定长度(字节数)的字符
注:以上读取文件内容必须先打开文件

while(!feof($open)){
    echo fgetc($open);
    echo fgets($open);
    echo fread($open,filesize($open));
}

三、移动文件的指针
1.ftell($open);返回指针当前位置,默认为开始
2.fseek($open,-4,SEEK_END);将指针移动至某位置,如从文件尾前移4个字节,注意结尾可能有换行符。可以配合fopen的a追加模式更方便的操作

$whence值可以是:
•SEEK_SET - 设定位置等于 offset 字节。
•SEEK_CUR - 设定位置为当前位置加上 offset。
•SEEK_END - 设定位置为文件尾加上 offset。

3.rewind($open);将指针放到开头
四、文件的锁定机制
1.flock($open,LOCK_SH):读取/写入文件时都需要锁定(LOCK_SH/LOCK_EX),以防止多人同时操作,解锁时方法相同(LOCK_UN)
注:$handle必须指向一个打开的文件资源
bool flock ( resource $handle , int $operation [, int &$wouldblock ] )

  operation 可以是以下值之一: 
◦ LOCK_SH取得共享锁定(读取的程序)。  
◦ LOCK_EX 取得独占锁定(写入的程序。  
◦ LOCK_UN 释放锁定(无论共享或独占)。

五、实例:留言板

{$username},".date("y-m-d h:i",$time).":{$title}{$content}


"; } fclose($file); } ?>

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/25710.html

相关文章

  • CSRF攻击是什么并且如何防止

    摘要:,意为跨网站请求伪造,也有写为。攻击者伪造目标用户的请求,然后此请求发送到有漏洞的网站,网站执行此请求后,引发跨站请求伪造攻击。 CSRF(Cross Site Request Forgeries),意为跨网站请求伪造,也有写为XSRF。攻击者伪造目标用户的HTTP请求,然后此请求发送到有CSRF漏洞的网站,网站执行此请 求后,引发跨站请求伪造攻击。攻击者利用隐蔽的HTTP连接,让目标...

    Flands 评论0 收藏0
  • php学习之言板

    摘要:用到对数据进行删除,具体请看的编写相关姿势有发送请求字符串模板页面元素内容赋值请求返回到这,整体结构就完成了。 前言 在对php语法有一定了解之后开始,这是第一个php练手项目,涵盖的知识有 公共部分的引用 表单的提交 请求的接收与响应 interface+implements的使用 基于文件的所处理的增删改查 json的格式化与字符串序列化 项目地址message boardps...

    biaoxiaoduan 评论0 收藏0
  • PHP面试之面向对象(1)

    摘要:二面向对象有什么特征面向对象的主要特征有抽象继承封装和多态。析构函数析构函数是在引入的,它的作用与调用时机和构造函数刚好相反,它在对象被销毁时自动执行。 PHP面试专栏正式起更,每周一、三、五更新,提供最好最优质的PHP面试内容。PHP中面向对象常考的知识点有以下7点,我将会从以下几点进行详细介绍说明,帮助你更好的应对PHP面试常考的面向对象相关的知识点和考题。整个面向对象文章的结构涉...

    phodal 评论0 收藏0
  • PHP面试常考内容之Memcache和Redis(2)

    摘要:继周一发布的面试常考内容之和后,这是第二篇,感谢你的支持和阅读。预告面试常考内容之和将于本周五更新。以上内容摘自程序员面试笔试宝典书籍,该书已在天猫京东当当等电商平台销售。 你好,是我琉忆。继周一(2019.2-18)发布的PHP面试常考内容之Memcache和Redis(1)后,这是第二篇,感谢你的支持和阅读。本周(2019.2-18至2-22)的文章内容点为以下几点,更新时间为每周...

    sewerganger 评论0 收藏0
  • PHP面试常考内容之Memcache和Redis(2)

    摘要:继周一发布的面试常考内容之和后,这是第二篇,感谢你的支持和阅读。预告面试常考内容之和将于本周五更新。以上内容摘自程序员面试笔试宝典书籍,该书已在天猫京东当当等电商平台销售。 你好,是我琉忆。继周一(2019.2-18)发布的PHP面试常考内容之Memcache和Redis(1)后,这是第二篇,感谢你的支持和阅读。本周(2019.2-18至2-22)的文章内容点为以下几点,更新时间为每周...

    Eric 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<