php 文件操作函数(文件 创建,删除,修改 复制 属性)(1/3)

 更新时间:2016年11月25日 15:10  点击:2265
本文章要讲关于php 文件操作函数他们包括对文件 创建,删除,修改 复制 获取文件属性,判断文件是否存在,写文件,改变文件属性,给写内容,复制文件 写文件的时候有时候需要锁定,然后写等操作。

 ●    读文件

首先是一个文件看能不能读取(权限问题),或者存在不,我们可以用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)
{
$extend =explode("." , $file_name);
return end($extend); 
}

在php中对目录的操作函数不多,本文章主要介绍opendir(),readdir(),closedir(),使用的时候是先打开文件句柄,上当删除mkdir($path,0777) ,0777是权限码,在非window下可用umask()函数设置. rmdir($path) 将删除路径在$path的文件.

 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数组的值全部打印出来.

session,中文名称为会话,它是指一类用来在客户端和服务器间保持会话连接状态的解决方案,同时 由于其的广泛应用性,PHP作为一种web开发语言,当然也是完全的支持Session机制.

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();
?>

[!--infotagslink--]

相关文章

  • php读取zip文件(删除文件,提取文件,增加文件)实例

    下面小编来给大家演示几个php操作zip文件的实例,我们可以读取zip包中指定文件与删除zip包中指定文件,下面来给大这介绍一下。 从zip压缩文件中提取文件 代...2016-11-25
  • php正确禁用eval函数与误区介绍

    eval函数在php中是一个函数并不是系统组件函数,我们在php.ini中的disable_functions是无法禁止它的,因这他不是一个php_function哦。 eval()针对php安全来说具有很...2016-11-25
  • php中eval()函数操作数组的方法

    在php中eval是一个函数并且不能直接禁用了,但eval函数又相当的危险了经常会出现一些问题了,今天我们就一起来看看eval函数对数组的操作 例子, <?php $data="array...2016-11-25
  • Python astype(np.float)函数使用方法解析

    这篇文章主要介绍了Python astype(np.float)函数使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-06-08
  • Python中的imread()函数用法说明

    这篇文章主要介绍了Python中的imread()函数用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-16
  • C# 中如何取绝对值函数

    本文主要介绍了C# 中取绝对值的函数。具有很好的参考价值。下面跟着小编一起来看下吧...2020-06-25
  • C#学习笔记- 随机函数Random()的用法详解

    下面小编就为大家带来一篇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函数详细解析

    这篇文章主要介绍了C++中Sort函数详细解析,sort函数是algorithm库下的一个函数,sort函数是不稳定的,即大小相同的元素在排序后相对顺序可能发生改变...2022-08-18
  • PHP用strstr()函数阻止垃圾评论(通过判断a标记)

    strstr() 函数搜索一个字符串在另一个字符串中的第一次出现。该函数返回字符串的其余部分(从匹配点)。如果未找到所搜索的字符串,则返回 false。语法:strstr(string,search)参数string,必需。规定被搜索的字符串。 参数sea...2013-10-04
  • PHP函数分享之curl方式取得数据、模拟登陆、POST数据

    废话不多说直接上代码复制代码 代码如下:/********************** curl 系列 ***********************///直接通过curl方式取得数据(包含POST、HEADER等)/* * $url: 如果非数组,则为http;如是数组,则为https * $header:...2014-06-07
  • php中的foreach函数的2种用法

    Foreach 函数(PHP4/PHP5)foreach 语法结构提供了遍历数组的简单方式。foreach 仅能够应用于数组和对象,如果尝试应用于其他数据类型的变量,或者未初始化的变量将发出错误信息。...2013-09-28
  • php跨网站请求伪造与防止伪造方法

    伪造跨站请求介绍伪造跨站请求比较难以防范,而且危害巨大,攻击者可以通过这种方式恶作剧,发spam信息,删除数据等等。...2013-10-01
  • C语言中free函数的使用详解

    free函数是释放之前某一次malloc函数申请的空间,而且只是释放空间,并不改变指针的值。下面我们就来详细探讨下...2020-04-25
  • PHP函数strip_tags的一个bug浅析

    PHP 函数 strip_tags 提供了从字符串中去除 HTML 和 PHP 标记的功能,该函数尝试返回给定的字符串 str 去除空字符、HTML 和 PHP 标记后的结果。由于 strip_tags() 无法实际验证 HTML,不完整或者破损标签将导致更多的数...2014-05-31
  • SQL Server中row_number函数的常见用法示例详解

    这篇文章主要给大家介绍了关于SQL Server中row_number函数的常见用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-12-08
  • Centos中彻底删除Mysql(rpm、yum安装的情况)

    我用的centos6,mysql让我整出了各种问题,我想重装一个全新的mysql,yum remove mysql-server mysql之后再install并不能得到一个干净的mysql,原来的/etc/my.cnf依然没变,datadir里面的数据已没有任何变化,手动删除/etc/my.cn...2015-03-15
  • nodejs文件操作模块FS(File System)常用函数简明总结

    件系统操作相关的函数挺多的。首先可以分为两大类。一类是异步+回调的。 一类是同步的。在这里只对异步的进行整理,同步的只需要在函数名称后面加上Sync即可1. 首先是一类最常规的读写函数,函数名称和形式,应该是起源于C...2014-06-07