- 浏览: 13731167 次
- 性别:
- 来自: 洛杉矶
文章分类
- 全部博客 (1994)
- Php / Pear / Mysql / Node.js (378)
- Javascript /Jquery / Bootstrap / Web (435)
- Phone / IOS / Objective-C / Swift (137)
- Ubuntu / Mac / Github / Aptana / Nginx / Shell / Linux (335)
- Perl / Koha / Ruby / Markdown (8)
- Java / Jsp (12)
- Python 2 / Wxpython (25)
- Codeigniter / CakePHP (32)
- Div / Css / XML / HTML5 (179)
- WP / Joomla! / Magento / Shopify / Drupal / Moodle / Zimbra (275)
- Apache / VPN / Software (31)
- AS3.0/2.0 / Flex / Flash (45)
- Smarty (6)
- SEO (24)
- Google / Facebook / Pinterest / SNS (80)
- Tools (22)
最新评论
-
1455975567:
xuezhongyu01 写道wocan23 写道我想问下那个 ...
Mysql: LBS实现查找附近的人 (两经纬度之间的距离) -
xuezhongyu01:
wocan23 写道我想问下那个111.1是怎么得来的我也看不 ...
Mysql: LBS实现查找附近的人 (两经纬度之间的距离) -
18335864773:
试试 pageoffice 在线打开 PDF 文件吧. pag ...
jquery在线预览PDF文件,打开PDF文件 -
青春依旧:
opacity: 0.5; 个人喜欢这种方式!关于其他css特 ...
css透明度的设置 (兼容所有浏览器) -
July01:
推荐用StratoIO打印控件,浏览器和系统的兼容性都很好,而 ...
搞定网页打印自动分页问题
一、引论
在任何计算机设备中,文件是都是必须的对象,而在web编程中,文件的操作一直是web程序员的头疼的地方,而,文件的操作在cms系统中这是必须
的,非常有用的,我们经常遇到生成文件目录,文件(夹)编辑等操作,现在我把php中的这些函数做一详细总结并实例示范如何使用.,关于对应的函数详细介
绍,请查阅php手册.此处只总结重点.和需要注意的地方.(这在php手册是没有的.) 二、目录操作
首先介绍的是一个从目录读取的函数,opendir(),readdir(),closedir(),使用的时候是先打开文件句柄,而后迭代列出: 这是讲返回文件目录下面的文件已经目录的程序(0文件将返回false). 有时候需要知道目录的信息,可以使用dirname($path)和basename($path),分别返回路径的目录部分和文件名名称部分,可用disk_free_space($path)返回看空间空余空间. 创建命令: ,0777
是权限码,在非window下可用umask()函数设置. 将删除路径在$path的文件. dir -- directory 类也是操作文件目录的重要类,有3个方法,read,rewind,close,这是一个仿面向对象的类,它先使用的是打开文件句柄,然后用指针的方式读取的.,这里看php手册: 输出: 文件的属性也非常重要,文件属性包括创建时间,最后修改时间,所有者,文件组,类型,大小等. 下面我们重点谈文件操作. 三、文件操作
A、读文件
首先是一个文件看能不能读取(权限问题),或者存在不,我们可以用is_readable函数获取信息。 <?php 判断文件存在的函数还有file_exists(下面演示),但是这个显然无is_readable全面.,当一个文件存在的话可以用 <?php 但是file_get_contents函数在较低版本上不支持,可以先创建文件的一个句柄,然后用指针读取全部: 还有一种方式,可以读取二进制的文件: B、写文件
和读取文件的方式一样,先看看是不是能写: <?php 能写了的话可以使用file_put_contents函数写入: file_put_contents函数在php5中新引进的函数(不知道存在的话用function_exists函数先判断一下)低版本的php无法使用,可以使用如下方式: 替换之. 写文件的时候有时候需要锁定,然后写: C、复制,删除文件
php删除文件非常easy,用unlink函数简单操作: 即可. 复制文件也很容易: 可以使用rename()函数重命名一个文件夹.其他操作都是这几个函数组合一下就能实现的. D、获取文件属性
我说几个常见的函数: 获取最近修改时间: 返回的说unix的时间戳,这在缓存技术常用. 相关的还有获取上次被访问的时间fileatime(),filectime()当文件的权限,所有者,所有组或其它 inode 中的元数据被更新时间,fileowner()函数返回文件所有者 $owner = posix_getpwuid(fileowner($file)); (非window系统),ileperms()获取文件的权限, <?php filesize()返回文件大小的字节数: 获取文件的全部信息有个返回数组的函数stat()函数: 那个键对应什么可以查阅详细资料,此处不再展开. 四、结束语
上面我简要的总结了一下几个文件操作,如果您熟练掌握以上列出的函数,已经在操作的时候没什么大的问题,php文件操作的函数变化比较快,现在已经非常强大了,文件这部分也是学习php非常重要的一部分,希望不要忽略.
<?php
$base_dir = "filelist/";
$fso = opendir($base_dir);
echo $base_dir."<hr/>" ;
while($flist=readdir($fso)){
echo $flist."<br/>" ;
}
closedir($fso)
?>
mkdir($path,0777)
rmdir($path)
<?php
$d = dir("/etc/php5");
echo "Handle: " . $d->handle . "\n";
echo "Path: " . $d->path . "\n";
while (false !== ($entry = $d->read())) {
echo $entry."\n";
}
$d->close();
?>
Handle: Resource id #2
Path: /etc/php5
.
..
apache
cgi
cli
$file = 'dirlist.php';
if (is_readable($file) == false) {
die('文件不存在或者无法读取');
} else {
echo '存在';
}
?>
$file = "filelist.php";
if (file_exists($file) == false) {
die('文件不存在');
}
$data = file_get_contents($file);
echo htmlentities($data);
?>
$fso = fopen($cacheFile, 'r');
$data = fread($fso, filesize($cacheFile));
fclose($fso);
$data = implode('', file($file));
$file = 'dirlist.php';
if (is_writable($file) == false) {
die("我是鸡毛,我不能");
}
?>
<?php
$file = 'dirlist.php';
if (is_writable($file) == false) {
die('我是鸡毛,我不能');
}
$data = '我是可鄙,我想要';
file_put_contents ($file, $data);
?>
$f = fopen($file, 'w');
fwrite($f, $data);
fclose($f);
function cache_page($pageurl,$pagedata){
if(!$fso=fopen($pageurl,'w')){
$this->warns('无法打开缓存文件.');//trigger_error
return false;
}
if(!flock($fso,LOCK_EX)){//LOCK_NB,排它型锁定
$this->warns('无法锁定缓存文件.');//trigger_error
return false;
}
if(!fwrite($fso,$pagedata)){//写入字节流,serialize写入其他格式
$this->warns('无法写入缓存文件.');//trigger_error
return false;
}
flock($fso,LOCK_UN);//释放锁定
fclose($fso);
return true;
}
<?php
$file = 'dirlist.php';
$result = @unlink ($file);
if ($result == false) {
echo '蚊子赶走了';
} else {
echo '无法赶走';
}
?>
<?php
$file = 'yang.txt';
$newfile = 'ji.txt'; # 这个文件父文件夹必须能写
if (file_exists($file) == false) {
die ('小样没上线,无法复制');
}
$result = copy($file, $newfile);
if ($result == false) {
echo '复制记忆ok';
}
?>
<?php
$file = 'test.txt';
echo date('r', filemtime($file));
?>
$file = 'dirlist.php';
$perms = substr(sprintf('%o', fileperms($file)), -4);
echo $perms;
?>
<?php
// 输出类似:somefile.txt: 1024 bytes
$filename = 'somefile.txt';
echo $filename . ': ' . filesize($filename) . ' bytes';
?>
<?php
$file = 'dirlist.php';
$perms = stat($file);
var_dump($perms);
?>
发表评论
-
PHP: 在类(class)中加载动态函数, 变量函数或半变量函数 variable function/method
2016-09-03 07:54 7171最终实例在下方 以前 ... -
MySQL入门 (七) : 储存引擎与资料型态
2016-09-03 07:49 45531 表格与储存引擎 表格(table)是资料库中用来储存 ... -
MySQL入门 (六) : 字元集与资料库
2016-09-03 07:47 45661 Character Set与Collation 任何 ... -
MySQL入门 (五) : CRUD 与资料维护
2016-09-03 07:46 54811 取得表格资讯 1.1 DESCRIBE指令 「 ... -
MySQL入门 (四) : JOIN 与UNION 查询
2016-09-03 07:42 45001 使用多个表格 在「world」资料库的「countr ... -
PHP: 关键字global 和 超全局变量$GLOBALS的用法、解释、区别
2016-08-31 12:07 5039$GLOBALS 是一个关联数组,每一个变量为一个 ... -
MySQL入门 (三) : 运算式与函式
2016-08-31 12:01 4383运算式(expressions)已经 ... -
MySQL入门 (二) : SELECT 基础查询
2016-08-31 11:56 46811 查询资料前的基本概念 1.1 表格、纪录 ... -
MySQL入门 (一) : 资料库概论与MySQL的安装
2016-08-31 11:51 44571. 储存与管理资料 储存与管理资料一直是资讯应用上最基本 ... -
MySQL入门 (九) : 子查询 Subquery
2016-08-30 02:26 44471 一个叙述中的查询叙述 子查询(subquery)是一 ... -
PHP: 用readonly取代disabled来获取input值 submit a disabled input in a form could not ge
2016-08-30 02:21 2706The form is like below; <f ... -
PHP7革新与性能优化
2016-08-30 02:20 2146有幸参与2015年的PHP技 ... -
Mysql: 图解 inner join、left join、right join、full outer join、union、union all的区别
2016-08-18 06:03 3122对于SQL的Join,在学习起来可能是比较乱的。我们知道, ... -
Comet 反Ajax: 基于jQuery与PHP实现Ajax长轮询(LongPoll)
2016-08-18 06:00 1377传统的AJAX轮询方式,客服端以用户定义的时间间隔去服务器上 ... -
PHP:ServerPush (Comet推送) 技术的探讨
2016-08-18 05:58 1039PHP中Push(推送)技术的探讨 [http://vi ... -
PHP: 手把手编写自己的 MVC 框架实例教程
2016-08-16 05:33 18131 什么是MVC MVC模式(Model-View-Con ... -
PHP5: mysqli 插入, 查询, 更新和删除 Insert Update Delete Using mysqli (CRUD)
2016-07-29 12:55 1747原文: PHP5: mysqli 插入, 查询, 更新 ... -
MongoDB 教程索引 (附有视频)
2016-07-27 10:54 736MongoDB 教程索引 MongoDB 教程一: ... -
Node.js 模块之Nimble流程控制
2016-07-18 12:59 1081NodeJS异步的特性有时候 ... -
Node.js web应用模块之Supervisor
2016-07-18 12:56 2327在开发或调试Node.js应 ...
相关推荐
通过理解和掌握这些PHP文件操作函数,开发者可以有效地处理文件系统,构建安全、高效的Web应用。在实际开发中,结合具体需求,灵活运用这些函数,能解决大多数文件相关的编程问题。在实践中不断积累经验,才能更好地...
"php文件操作类.zip"可能包含一个自定义的PHP类库,专为处理文件系统操作而设计。这个类库可以帮助开发者更方便、高效地进行读取、写入、创建、删除和移动文件等任务,而无需直接调用PHP的内置文件函数。下面,我们...
php文件系统操作类文件,可以对文件以及文件夹进行添加删除移动等操作。
PHP 写的一个简单文件操作类,支持 PHP4 PHP5
"实用的PHP文件操作类"就是这样一个工具,它旨在简化常见的文件处理任务。下面我们将深入探讨PHP文件操作类的关键概念和功能。 1. **类库介绍** 这个类库很可能包含了若干个PHP类,每个类都专注于一个特定的文件或...
### PHP文件操作和生成HTML文件原理 #### 一、PHP文件操作函数 ##### 1. fopen函数:打开文件函数 - **格式**:`fopen(路径和文件名,打开方式);` - **注意事项**: - 如果打开失败,该函数返回`FALSE`。 - ...
在PHP中,文件操作是日常开发中的重要组成部分,无论是在构建动态网站、处理用户上传的文件,还是存储和检索数据,文件系统交互都是必不可少的。本篇将通过一个实例来探讨如何使用PHP进行读写文件操作。 首先,我们...
综上所述,PHP文件操作提供了灵活的方式来管理和修改存储在.php文件中的全局变量。通过合理的设计和规范的编程习惯,我们可以高效且安全地处理这类任务。同时,结合错误处理和版本控制,可以进一步增强系统的稳定性...
### PHP 文件操作大全 在 PHP 中,文件操作是一项非常重要的功能,它可以帮助开发者实现数据的持久化存储、读取及管理。以下将详细介绍 PHP 文件操作的相关函数及其用法。 #### 文件基本操作 - **basename()**:...
"php文件操作.rar"这个压缩包显然包含了关于如何在PHP中进行文件操作的经典教程,其中08.pdf可能是具体章节或案例的文档。在这里,我们将详细探讨PHP文件操作的主要概念和常用函数。 1. **打开和读取文件**: PHP...
本文将详细讨论“一个PHP文件目录操作类”的概念、功能和应用,以及如何使用它来实现测试建立文件夹、复制文件夹、移动文件夹和删除...在实际开发中,这样的工具是必不可少的,特别是在处理大量文件操作的场景下。
php 文件目录操作类php 文件目录操作类php 文件目录操作类php 文件目录操作类php 文件目录操作类php 文件目录操作类php 文件目录操作类
php文件操作类,包括创建文件夹、递归复制、递归删除、递归移动
文件操作是PHP5中的基本功能,包括普通文件操作和数据库文件操作。PHP提供了一系列的文件处理函数来执行创建、读取、写入和关闭文件等任务。 1. **fopen()**:此函数用于打开文件,接受两个参数——文件名和模式。...
文件操作是PHP中非常重要的部分,它允许开发者与文件系统进行交互。在这个面向对象的文件操作类中,我们可以预期以下关键组件: 1. **构造函数**:这是类的一个特殊方法,当创建新对象时会自动调用。在文件操作类中...
5. 文件系统操作:PHP5增强了文件系统操作功能,如递归遍历目录、文件上传和下载、文件权限管理等,使得处理文件和目录更加方便。 6. Session管理:PHP5提供了改进的session管理,可以自定义session存储机制,增强...
PHP中的文件操作涉及到一系列功能强大的函数,可以帮助开发者在服务器上创建、读取、写入或删除文件和目录。通过学习和实践这些文件操作函数,Web程序员可以有效地管理服务器上的文件系统,从而完成CMS系统、文件...
在本实例中,我们将讨论如何使用PHP来读取和操作Excel文件。 首先,PHP可以借助不同的库来实现Excel文件的操作,比如`PHPExcel`、`PHPOffice/PhpSpreadsheet`和`fgetcsv`函数。这里提到的“PHP读取操作Excel文件...
本文将详细介绍如何在PHP5环境中实现文件下载功能,并结合给定的文件进行解析。 首先,我们来看`download.class.php`,这可能是一个自定义的下载类,用于封装文件下载的相关操作。此类通常会包含以下方法: 1. `...
对于初学者,这是一个很好的学习机会,通过研究源码可以深入理解PHP文件操作、Web交互以及权限控制等概念。而对于有经验的开发者,这样的源码可以作为一个快速启动项目的基础,节省大量开发时间。