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; ...
随机推荐
- SELECT TOP 100 PERCENT * 的含义
--返回符合条件的100%的记录,即所有符合条件的记录SELECT TOP 100 PERCENT * --返回符合条件的100条记录,即只返回符合条件的100条记录SELECT TOP 100 * ...
- windows sdk 设置窗体透明
#define WINVER 0x0501 #include <windows.h> /* Declare Windows procedure */ LRESULT CALLBACK Wi ...
- Poi 写入图片进入excel
public static void cacheWritePicture(BufferedImage bufferImg, Sheet sheet, Workbook wb, int width, i ...
- Learning Discriminative and Transformation Covariant Local Feature Detectors实验环境搭建详细过程
依赖项: Python 3.4.3 tensorflow>1.0.0, tqdm, cv2, exifread, skimage, glob 1.安装tensorflow:https://www ...
- vue项目设置每个页面的title
1.在项目目录下安装vue-wechat-title 2.在main.js中 使用vue-wechat-title 3.在router的配置中设置 4.在每个vue页面中加入 <div v-we ...
- python selenium等待特定网页元素加载完毕
selenium等待特定元素加载完毕 is_disappeared = WebDriverWait(driver, 8, 0.5, ignored_exceptions=TimeoutExceptio ...
- tensorflow 学习笔记-- tf.reduce_max、tf.sequence_mask
1.tf.reduce_max函数的作用:计算张量的各个维度上的元素的最大值.例子: import tensorflow as tfmax_value = tf.reduce_max([1, 3, 2 ...
- 题解 洛谷P4198/BZOJ2957【楼房重建】
每个楼房,还有修改操作.简单的想到用线段树来维护信息. 显然线段树只需要维护y/x即可,对于每一个楼房,能看见的条件就是前面楼房的y/x的严格小于当前楼房的y/x. 线段树的区间修改不再赘述. 那么怎 ...
- BZOJ 3996 线性代数 最小割
题意: 给出一个N*N的矩阵B和一个1*N的矩阵C.求出一个1*N的01矩阵A.使得 D=(A*B-C)*A^T最大.其中A^T为A的转置.输出D 分析: 这道题比较绕,我们需要看清题目中那个式子的本 ...
- yii1框架,事务使用方法
Yii1框架事务操作方法如下: $transaction= Yii::app()->db->beginTransaction();//创建事务 $transaction->commi ...