php 文件操作函数(文件 创建,删除,修改 复制 属性)(1/3)
● 读文件
首先是一个文件看能不能读取(权限问题),或者存在不,我们可以用is_readable函数获取信息.:
代码如下 | 复制代码 |
<?php $file = 'dirlist.php'; if (is_readable($file) == false) { die('文件不存在或者无法读取'); } else { echo '存在'; } ?> |
判断文件存在的函数还有file_exists(下面演示),但是这个显然无is_readable全面.,当一个文件存在的话可以用
代码如下 | 复制代码 |
<?php $file = "filelist.php"; if (file_exists($file) == false) { die('文件不存在'); } $data = file_get_contents($file); echo htmlentities($data); ?> |
但是file_get_contents函数在较低版本上不支持,可以先创建文件的一个句柄,然后用指针读取全部:
代码如下 | 复制代码 |
$fso = fopen($cachefile, 'r'); $data = fread($fso, filesize($cachefile)); fclose($fso); |
还有一种方式,可以读取二进制的文件:
文章提供了四种获取 文件扩展名方法哦,这是利用了php的各种方法一函数来实现文件扩展名的获取,我个人特别喜欢最后一种获取文件文件扩展名方法,利用了php end函数直接获取数组最后一个元素的内容就OK了。
<?php
方法一
代码如下 | 复制代码 |
function extend_1($file_name) { $retval=""; $pt=strrpos($file_name, "."); if ($pt) $retval=substr($file_name, $pt+1, strlen($file_name) - $pt); return ($retval); } |
?>
方法二:
代码如下 | 复制代码 |
function extend_2($file_name) { $extend = pathinfo($file_name); $extend = strtolower($extend["extension"]); return $extend; } |
方法三:
代码如下 | 复制代码 |
function extend_3($file_name) { $extend =explode("." , $file_name); $va=count($extend)-1; return $extend[$va]; } |
方法四:
代码如下 | 复制代码 |
function extend_3($file_name) |
rmdir($path)
将删除路径在$path的文件.(
首先介绍的是一个从目录读取的函数,opendir(),readdir(),closedir(),使用的时候是先打开文件句柄,而后迭代列出:
代码如下 | 复制代码 |
<?php $base_dir = "filelist/"; $fso = opendir($base_dir); echo $base_dir."<hr/>" ; while($flist=readdir($fso)){ echo $flist."<br/>" ; } closedir($fso) ?> |
这是讲返回文件目录下面的文件已经目录的程序(0文件将返回false).
有时候需要知道目录的信息,可以使用dirname($path)和basename($path),分别返回路径的目录部分和文件名名称部分,可用disk_free_space($path)返回看空间空余空间.
创建命令:
mkdir($path,0777)
,0777是权限码,在非window下可用umask()函数设置.
rmdir($path)
将删除路径在$path的文件.
dir -- directory 类也是操作文件目录的重要类,有3个方法,read,rewind,close,这是一个仿面向对象的类,它先使用的是打开文件句柄,然后用指针的方式读取的.,这里看php手册:
代码如下 | 复制代码 |
<?php $d = dir("/etc/php5"); echo "handle: " . $d->handle . " "; echo "path: " . $d->path . " "; while (false !== ($entry = $d->read())) { echo $entry." "; } $d->close(); ?> |
输出:
代码如下 | 复制代码 |
handle: resource id #2 path: /etc/php5 . .. apache cgi cli |
文件的属性也非常重要,文件属性包括创建时间,最后修改时间,所有者,文件组,类型,大小等
下面我们重点谈文件操作.
.什么是cookie
cookie是一种在远程浏览器端存储数据并以此来跟踪和识别用户的机制.2.php教程如何设置cookie
在php中可以使用setcookie()或setrawcookie()函数来设置cookie.cookie是http头的一部分,因此setcookie()等函数必须在其输出数据座之前被调用,这和header()函数是相同的.不过在这里也可以使用输出缓冲函数来延迟脚本的输出.直到设置好了所有cookie和其他http标头.
<?php
$value = "something";
setcookie("testcookie",$value); //设置cookie值
setcookie("testcookie",$value,time()+3600); //设置失效时间
?>
如果希望对一个cookie变量设置多个值,则可以在cookie变量名称后面加[]符号.
<?php
// set the cookies
setcookie("cookie[three]", "cookiethree");
setcookie("cookie[two]", "cookietwo");
setcookie("cookie[one]", "cookieone");
?>
setcookie()还可以设置控制读取cookie的程序的域及目录路径,默认为同服务器且在同级或以下目录结构内的页面才可以读取,然而如果你想设置允许从域example.com的/~rasmus目录处理页面,并且使用基于ssl的安全连接,则可以进行如下设置:
<?php
$value = "something";
setcookie("testcookie",$value,time()+3600,"/~rasmus/",".example.com",1);
?>
删除cookie的操作与上面类似,只需要设置cookie的值为空即可.
<?php
// set the expiration date to one hour ago
setcookie ("testcookie", "", time() - 3600);
setcookie ("testcookie", "", time() - 3600, "/~rasmus/", ".example.com", 1);
?>注意:
根据register_globals的设置,可以从cookie建立普通的php变量,不过一般不推荐依赖于此特性,因为出于安全考虑该选项通常是关闭的.
必须保证在设置cookie前无数据输出.
php会自动的接收和处理cookie,我们只需要在需要它的时候直接调用即可,你可以使用print_r($_cookie)把整个cookie数组的值全部打印出来.
1.什么是session
session,中文名称为会话,它是指一类用来在客户端和服务器间保持会话连接状态的解决方案,同时
由于其的广泛应用性,php教程作为一种web开发语言,当然也是完全的支持session机制.
具体针对web网站来说,session指用户在浏览某个网站时,从进入网站到浏览器关闭所经过的时间,由
此可知,session实际上是一个特定的时间概念.
通过使用session,我们就可以在网站的上下文不同页面间传递变量,将session用于用户身份认证,
程序状态记录等,最常见的形式就是配合cookie使用,实现保存用户登录状态等功能.2.php session用法
每一个网站访客都会被分配给一个唯一的标志符,即会话id,它的存放形式无非两种:要么经过
url传递,要么保存在客户端的cookies里.当然,你也可以将session保存到数据库教程里,这样会
更安全,但效率方面会有所下降.
url方式传递安全性肯定太差,php的会话机制是通过设置cookie,在cookies中保存会话id
(session id),在服务器端会生成session文件,与用户进行关联,web应用程序存储与这些
session相关的数据,并在各页面间进行传递.3.php session函数及使用
在php中有关session的函数比较多,不过我们最常用到的也就这么几个函数:
session_start(), session_register(),session_unregister(),
session_is_registered(),session_destroy函数.
session_start():启用session机制,在需要用到session的程序文件的最开始调用它.
session_register():注册session变量
session_unregister(): 删除session变量(一个一个删除)
session_is_registered(): 判断session变量是否注册
session_distroy(): 销毁所有session变量(所有session变量销毁)
需要注意下面几个方面:
1.函数session_start()必须在程序最开始执行,在其前面不能有任何输出内容,否则
就会出现“warning:cannot send session cookie - headers already
sent"类似这样的警告信息.
2.函数session_register()用于注册要保存在session中的相关变量,其用法如下:
<?php
$val = "session value";
session_register("val");
?>
val即为要注册的session变量名,在注册时一定不要加上"$"符号,只写其变量名称即可.
3.函数session_unregister()与上面函数用法完全相同,但功能相反,上面函数是注册
session变量,而其则是删除指定的session变量.
4.函数session_is_registered()用于判断session变量是否注册.
5.函数session_destroy()主要用于在系统注销和退出时,销毁所有的session变量,
它没有参数,直接调用即可。
下面是一个简单的完整的使用样例程序:
<?php
session_start();
$val = "session value";
session_register("val");
if(session_is_registered("val")) {
session_unregister("val");
}
else {
echo "val变量还未进行注册";
}
session_destroy();
?>
相关文章
- 下面小编来给大家演示几个php操作zip文件的实例,我们可以读取zip包中指定文件与删除zip包中指定文件,下面来给大这介绍一下。 从zip压缩文件中提取文件 代...2016-11-25
- eval函数在php中是一个函数并不是系统组件函数,我们在php.ini中的disable_functions是无法禁止它的,因这他不是一个php_function哦。 eval()针对php安全来说具有很...2016-11-25
- 在php中eval是一个函数并且不能直接禁用了,但eval函数又相当的危险了经常会出现一些问题了,今天我们就一起来看看eval函数对数组的操作 例子, <?php $data="array...2016-11-25
Python astype(np.float)函数使用方法解析
这篇文章主要介绍了Python astype(np.float)函数使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-06-08- 这篇文章主要介绍了Python中的imread()函数用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-16
- 本文主要介绍了C# 中取绝对值的函数。具有很好的参考价值。下面跟着小编一起来看下吧...2020-06-25
- 下面小编就为大家带来一篇C#学习笔记- 随机函数Random()的用法详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25
- 复制代码 代码如下: <td> <a href="/member/life/edit_ppt/<?php echo $v->id;?>" class="btn">编辑</a> <a href="javascript:;" onclick="if(confirm('您确定删除这条记录?')){location.href='/member/life/d...2014-06-07
- CREATE FUNCTION ChangeBigSmall (@ChangeMoney money) RETURNS VarChar(100) AS BEGIN Declare @String1 char(20) Declare @String2 char...2016-11-25
Android开发中findViewById()函数用法与简化
findViewById方法在android开发中是获取页面控件的值了,有没有发现我们一个页面控件多了会反复研究写findViewById呢,下面我们一起来看它的简化方法。 Android中Fin...2016-09-20- 这篇文章主要介绍了C++中Sort函数详细解析,sort函数是algorithm库下的一个函数,sort函数是不稳定的,即大小相同的元素在排序后相对顺序可能发生改变...2022-08-18
- strstr() 函数搜索一个字符串在另一个字符串中的第一次出现。该函数返回字符串的其余部分(从匹配点)。如果未找到所搜索的字符串,则返回 false。语法:strstr(string,search)参数string,必需。规定被搜索的字符串。 参数sea...2013-10-04
PHP函数分享之curl方式取得数据、模拟登陆、POST数据
废话不多说直接上代码复制代码 代码如下:/********************** curl 系列 ***********************///直接通过curl方式取得数据(包含POST、HEADER等)/* * $url: 如果非数组,则为http;如是数组,则为https * $header:...2014-06-07- Foreach 函数(PHP4/PHP5)foreach 语法结构提供了遍历数组的简单方式。foreach 仅能够应用于数组和对象,如果尝试应用于其他数据类型的变量,或者未初始化的变量将发出错误信息。...2013-09-28
- 伪造跨站请求介绍伪造跨站请求比较难以防范,而且危害巨大,攻击者可以通过这种方式恶作剧,发spam信息,删除数据等等。...2013-10-01
- free函数是释放之前某一次malloc函数申请的空间,而且只是释放空间,并不改变指针的值。下面我们就来详细探讨下...2020-04-25
- PHP 函数 strip_tags 提供了从字符串中去除 HTML 和 PHP 标记的功能,该函数尝试返回给定的字符串 str 去除空字符、HTML 和 PHP 标记后的结果。由于 strip_tags() 无法实际验证 HTML,不完整或者破损标签将导致更多的数...2014-05-31
SQL Server中row_number函数的常见用法示例详解
这篇文章主要给大家介绍了关于SQL Server中row_number函数的常见用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-12-08Centos中彻底删除Mysql(rpm、yum安装的情况)
我用的centos6,mysql让我整出了各种问题,我想重装一个全新的mysql,yum remove mysql-server mysql之后再install并不能得到一个干净的mysql,原来的/etc/my.cnf依然没变,datadir里面的数据已没有任何变化,手动删除/etc/my.cn...2015-03-15nodejs文件操作模块FS(File System)常用函数简明总结
件系统操作相关的函数挺多的。首先可以分为两大类。一类是异步+回调的。 一类是同步的。在这里只对异步的进行整理,同步的只需要在函数名称后面加上Sync即可1. 首先是一类最常规的读写函数,函数名称和形式,应该是起源于C...2014-06-07