PHP关于文件与文件夹(1) 写入文件 文件权限 三、锁定文件
一、文件权限
总之中的一个切都是为了保证文件夹的安全,保证文件夹的安全比保证文件的安全更重要。
二、写入文件
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>
三、锁定文件
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) 写入文件 文件权限 三、锁定文件的更多相关文章
- 删除文件时提示 你需要来自system的权限才能对此文件夹进行更改
问题描述: 我的计算机是Win7 x64操作系统,在我的计算机的F盘中,不知道什么时候多了个“12e4k69m762nzcgt8zx”这样一个文件夹,应该是某个软件自己创建并留下的文件夹,想删除掉则提 ...
- u-boot(三)启动文件
目录 u-boot(三)启动文件 汇编 C:_start_armboot 代码摘要 C:main_loop 内核启动 菜单处理(自定义实现) 命令处理 title: u-boot(三)启动文件 tag ...
- python (1)一个简单的爬虫: python 在windows下 创建文件夹并写入文件
1.一个简单的爬虫:爬取豆瓣的热门电影的信息 写在前面:如何创建本来存在的文件夹并写入 t_path = "d:/py/inn" #本来不存在inn,先定义路径,然后如果不存在,则 ...
- C# 文件操作 全收录 追加、拷贝、删除、移动文件、创建目录、递归删除文件夹及文件....
本文收集了目前最为常用的C#经典操作文件的方法,具体内容如下:C#追加.拷贝.删除.移动文件.创建目录.递归删除文件夹及文件.指定文件夹下 面的所有内容copy到目标文件夹下面.指定文件夹下面的所有内 ...
- AD域-让共享目录只显示用户有权限访问的文件夹
问题: 在AD域中,我们一般都会用到共享,如果有很多部门,我们可能还会按部门.职位配置权限.比如CSD,IT,PA等,但文件夹一多,用户看着就头大,而且用户没权限访问的文件夹误点击进去还会提示无权限访 ...
- 你需要管理员权限才能删除文件夹及服务器C盘不及批处理
Windows 7系统,管理员权限设置方法 一.选择文件夹或文件所有者 我们用鼠标右键点击要操作的文件或文件夹 - 属性: 在出现的文件夹属性窗口,我们用鼠标左键点击:安全: 我们用鼠标左键点击:高级 ...
- Path,Files巩固,题目:从键盘接收两个文件夹路径,把其中一个文件夹中(包含内容)拷贝到另一个文件夹中
这个题目用传统的File,InputStream可以做,但是如果用Files,Path类做,虽然思路上会困难一些,但是代码简洁了很多,以下是代码: import java.io.IOException ...
- webform工程中aspx页面为何不能调用appcode文件夹下的类(ASP.NET特殊文件夹的用法)
App_code 只有website类型的工程才有效. App_Code 下创建的.cs文件仅仅是“内容”不是代码.你设置那个文件为“编译”就行了. 其他特殊文件夹 1. Bin文件夹 Bin文件夹包 ...
- 使用linq获得当前文件夹下的下一级满足条件的文件夹
使用linq获得当前文件夹下的下一级满足条件的文件夹. SPFolderCollection subAlbums = Folder.SubFolders; ...
随机推荐
- Android(java)学习笔记199:JNI之JNI概念
1. JNI是什么? java native interface (java本机接口) 比如方法声明: public final native Class<?> getClass(): ...
- 微擎we7模块和模板安装方法
2017年06月08日 09:26:55 源码学习分享 阅读数:15643 标签: we7 更多 个人分类: 微擎we7 版权声明:本文为博主原创文章,未经博主允许不得转载. https://bl ...
- dom监听事件class
layui.use(['layer', 'form'], function(){ var layer = layui.layer ,form = layui.form; var $ = layui.j ...
- maven release插件将一版本发布到仓库中时Return code is: 401, ReasonPhrase:Unauthorized
需要在maven的setting.xml中配置servers.server节点,其值为nexus的对应的repository的id以及用户名及密码 <servers> <server ...
- Js获取操作系统版本 && 获得浏览器版本
//利用原生Js获取操作系统版本function getOS() { var sUserAgent = navigator.userAgent; var isWin = (navigator.plat ...
- 第4节 hive调优:1、2、fetch抓取和表的优化
hive的调优:第一个调优:fetch抓取,能够避免使用mr的,就尽量不要用mr,因为mr太慢了 set hive.fetch.task.conversion=more 表示我们的全局查找,字段查找, ...
- eclipse如何导出WAR包
WAR包是用于将java项目部署在中间件上的,例如部署在Tomcat,Weblogic,WebSphere等等,那么如何使用eclipse导出WAR包呢? 工具/原料 eclipse 方法/步骤 ...
- cssrefresh.js-CSS文件自动刷新
一.如何使用cssrefresh.js 使用很简单,类似下面的代码: <head> <link rel="stylesheet" type="text/ ...
- python3.x Day6 socketserver
socketserver是啥? 简化了编写网络服务器,就是对于socket的再一次封装sockerserver包含4个类可以使用:A=socketserver.TCPServer() #用于TCP/I ...
- 11.Spring通过工厂方法配置Bean
通过工厂方法配置Bean暴扣静态工厂方法和实例工厂方法. 1.静态工厂方法 调用静态工厂方法创建Bean是将对象创建的过程封装到静态方法中,当客户端需要对象时,只需要简单的调用静态方法,而不去关心创建 ...