一、文件权限

总之中的一个切都是为了保证文件夹的安全,保证文件夹的安全比保证文件的安全更重要。

二、写入文件

file_put_contents($file,$data);  //假设没有的话会创建。有的话覆盖原文件;

file_put_contents($file,$data,FILE_APPEND); //没的话会创建,有的话追加在后面;

file_put_contents($file,$data.PHP_EOL,FILE_APPEND);//有换行

【样例】:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML1.0 Transitional//EN"

 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"xml:lang="en" lang="en">

<head>

 <meta http-equiv="content-type"content="text/html; charset=utf-8" />

 <title>Add AQuotation</title>

</head>

<body>

<?php // Script 11.1 -add_quote.php

// Identify the file to use:

$file ='../quotes.txt';  //这个文件最好放在父文件夹中,安全。

// Check for a form submission:

if ($_SERVER['REQUEST_METHOD'] == 'POST') { // Handle theform.

if ( !empty($_POST['quote'])&& ($_POST['quote'] != 'Enter yourquotation here.') ) { // Need some thing to write.

 if(is_writable($file)) { // Confirm that the file iswritable.

   file_put_contents($file,$_POST['quote'] . PHP_EOL, FILE_APPEND); // Write thedata.

   //Print amessage:

   print'<p>Your quotation has beenstored.</p>';

} else { // Could notopen the file.

   print'<p style="color: red;">Yourquotation could not be stored due to a systemerror.</p>';

  }

} else { // Failed to enter aquotation.

  print '<pstyle="color: red;">Please enter aquotation!</p>';

 }

} // End of submitted IF.

// Leave PHP and display the form:

?>

<form action="add_quote.php"method="post">

 <textarea name="quote" rows="5"cols="30">Enter your quotationhere.</textarea><br/>

 <input type="submit" name="submit"value="Add This Quote!" />

</form>

</body>

</html>

三、锁定文件

file_put_contents($file,$data,FILE_APPEND|LOCK_EX); //两个变量的使用顺序无关紧要

LOCK_SH   用于读取的共享锁

LOCK_EX   用于写入的独享锁

LOCK_UN   释放一个锁

LOCK_NB   非堵塞锁

四、读取文件

第一种方法:$data=file_get_contents($file);  //依照一个字符串来读取

另外一种方法:$data=file($file);  //读取每一行的数据,较为经常使用

【例】: //补充:慎重点能够在file函数前使用is_readable()函数測试下是否可读这个文件

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML1.0 Transitional//EN"

 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"
xml:lang="en"lang="en">

<head>

 <meta http-equiv="content-type"content="text/html; charset=utf-8" />

 <title>View AQuotation</title>

</head>

<body>

<h1>RandomQuetation</h1>

<?php

$data =file('../quotes.txt');

// Count the number of items in the array:

$n = count($data);

// Pick a random item:  产生一个随机数

$rand = rand(0, ($n -1));

// Print the quotation:

print '<p>' .trim($data[$rand]) .'</p>'; //file能够使内容信息放置在一个数组中,每一个元素都包括了一行

?>

</body>

</html>

PHP关于文件与文件夹(1) 写入文件 文件权限 三、锁定文件的更多相关文章

  1. 删除文件时提示 你需要来自system的权限才能对此文件夹进行更改

    问题描述: 我的计算机是Win7 x64操作系统,在我的计算机的F盘中,不知道什么时候多了个“12e4k69m762nzcgt8zx”这样一个文件夹,应该是某个软件自己创建并留下的文件夹,想删除掉则提 ...

  2. u-boot(三)启动文件

    目录 u-boot(三)启动文件 汇编 C:_start_armboot 代码摘要 C:main_loop 内核启动 菜单处理(自定义实现) 命令处理 title: u-boot(三)启动文件 tag ...

  3. python (1)一个简单的爬虫: python 在windows下 创建文件夹并写入文件

    1.一个简单的爬虫:爬取豆瓣的热门电影的信息 写在前面:如何创建本来存在的文件夹并写入 t_path = "d:/py/inn" #本来不存在inn,先定义路径,然后如果不存在,则 ...

  4. C# 文件操作 全收录 追加、拷贝、删除、移动文件、创建目录、递归删除文件夹及文件....

    本文收集了目前最为常用的C#经典操作文件的方法,具体内容如下:C#追加.拷贝.删除.移动文件.创建目录.递归删除文件夹及文件.指定文件夹下 面的所有内容copy到目标文件夹下面.指定文件夹下面的所有内 ...

  5. AD域-让共享目录只显示用户有权限访问的文件夹

    问题: 在AD域中,我们一般都会用到共享,如果有很多部门,我们可能还会按部门.职位配置权限.比如CSD,IT,PA等,但文件夹一多,用户看着就头大,而且用户没权限访问的文件夹误点击进去还会提示无权限访 ...

  6. 你需要管理员权限才能删除文件夹及服务器C盘不及批处理

    Windows 7系统,管理员权限设置方法 一.选择文件夹或文件所有者 我们用鼠标右键点击要操作的文件或文件夹 - 属性: 在出现的文件夹属性窗口,我们用鼠标左键点击:安全: 我们用鼠标左键点击:高级 ...

  7. Path,Files巩固,题目:从键盘接收两个文件夹路径,把其中一个文件夹中(包含内容)拷贝到另一个文件夹中

    这个题目用传统的File,InputStream可以做,但是如果用Files,Path类做,虽然思路上会困难一些,但是代码简洁了很多,以下是代码: import java.io.IOException ...

  8. webform工程中aspx页面为何不能调用appcode文件夹下的类(ASP.NET特殊文件夹的用法)

    App_code 只有website类型的工程才有效. App_Code 下创建的.cs文件仅仅是“内容”不是代码.你设置那个文件为“编译”就行了. 其他特殊文件夹 1. Bin文件夹 Bin文件夹包 ...

  9. 使用linq获得当前文件夹下的下一级满足条件的文件夹

    使用linq获得当前文件夹下的下一级满足条件的文件夹.             SPFolderCollection subAlbums = Folder.SubFolders;            ...

随机推荐

  1. Android(java)学习笔记199:JNI之JNI概念

    1. JNI是什么? java native interface (java本机接口) 比如方法声明: public final native Class<?>  getClass(): ...

  2. 微擎we7模块和模板安装方法

    2017年06月08日 09:26:55 源码学习分享 阅读数:15643 标签: we7 更多 个人分类: 微擎we7   版权声明:本文为博主原创文章,未经博主允许不得转载. https://bl ...

  3. dom监听事件class

    layui.use(['layer', 'form'], function(){ var layer = layui.layer ,form = layui.form; var $ = layui.j ...

  4. maven release插件将一版本发布到仓库中时Return code is: 401, ReasonPhrase:Unauthorized

    需要在maven的setting.xml中配置servers.server节点,其值为nexus的对应的repository的id以及用户名及密码 <servers> <server ...

  5. Js获取操作系统版本 && 获得浏览器版本

    //利用原生Js获取操作系统版本function getOS() { var sUserAgent = navigator.userAgent; var isWin = (navigator.plat ...

  6. 第4节 hive调优:1、2、fetch抓取和表的优化

    hive的调优:第一个调优:fetch抓取,能够避免使用mr的,就尽量不要用mr,因为mr太慢了 set hive.fetch.task.conversion=more 表示我们的全局查找,字段查找, ...

  7. eclipse如何导出WAR包

    WAR包是用于将java项目部署在中间件上的,例如部署在Tomcat,Weblogic,WebSphere等等,那么如何使用eclipse导出WAR包呢? 工具/原料 eclipse 方法/步骤   ...

  8. cssrefresh.js-CSS文件自动刷新

    一.如何使用cssrefresh.js 使用很简单,类似下面的代码: <head> <link rel="stylesheet" type="text/ ...

  9. python3.x Day6 socketserver

    socketserver是啥? 简化了编写网络服务器,就是对于socket的再一次封装sockerserver包含4个类可以使用:A=socketserver.TCPServer() #用于TCP/I ...

  10. 11.Spring通过工厂方法配置Bean

    通过工厂方法配置Bean暴扣静态工厂方法和实例工厂方法. 1.静态工厂方法 调用静态工厂方法创建Bean是将对象创建的过程封装到静态方法中,当客户端需要对象时,只需要简单的调用静态方法,而不去关心创建 ...