多数大学生出来选择的工作和专业无关
首页 > 专业知识

PHP文件系统相关函数的功能详解

时间:2019-01-18 20:11:46 [来源]:郑州PHP培训学校

   PHP文件系统相关函数的功能详解

  PHP文件系统相关函数可以帮助我们实现目录内容的显示,移动文件等,很多人都开始用这些函数开发基于互联网的文件资源管理器。
  我们通过对PHP的学习,知道其中很多函数都有很重要的作用,其中就有与文件系统有关的函数。我们今天就为大家介绍PHP文件系统相关函数的具体功能体现,以了解PHP与文件系统之间的联系。这些函数不仅可以打开文件,还可以显示目录中的内容、移动文件和其他一些功能,许多人甚至用PHP开发基于互联网的文件资源管理器。
  关于文件路径的解释:在Windows中,可以在路径中使用/和符号,而在其他的操作系统中只能使用/符号。出于一致性的缘故,我们统一使用/符号。
  下面的PHP文件系统相关函数脚本样例可以显示一个目录清单,注释已经包含在代码中:
  <? /*把要读取的目录的全路径名存入一个名字为$dir_name的变量中。 */$dir_name = "/home/me/";
  /* 创建一个句柄,其值是打开一个给定目录的结果*/$dir = opendir($dir_name);
  /* 建立一个文字块,用以放置列表元素(文件名字)*/$file_list = "<ul>";
  /* 使用一个while语句,读取已经打开的目录中的所有元素,如果文件的名字不是“.”或“..”,则显示列表中的名字*/while ($file_name = readdir($dir)) {
  if (($file_name != ".") && ($file_name != "..")) {$file_list .= "<li>$file_name";
  }
  }
  $file_list .= "</ul>";
  /*关闭打开的目录,结束PHP模块*/
  closedir($dir);
  ?>
  <!-- Start your HTML -->
  <HTML>
  <HEAD>
  <TITLE>Directory Listing</TITLE>
  </HEAD>
  <BODY>
  <!-- Use PHP to print the name of the directory you read -->
  <P>Files in: <? echo "$dir_name"; ?></p>
  <!-- Use PHP to print the directory listing -->
  <? echo "$file_list"; ?>
  </BODY>
  </HTML>
  好了,我们已经得到了一个目录清单。需要注意的是,要读取一个文件(稍后我们将进行讲解)或目录的内容,PHP运行的系统上的用户必须至少有读取文件的权限。
  下面是一个如何拷贝文件的PHP文件系统相关函数例子:
  <? /*把你要拷贝的原文件的全路径赋给一个名字为$original的变量中,把拷贝的文件的全路径赋予一个名字为$copied的变量中*/$original = "/home/me/mydatabasedump";
  $copied = "/archive/mydatabasedumo_1010";/* 使用copy()函数拷贝原始文件,如果拷贝没有完成则会显示一个错误信息*/@copy($original, $copied) or die("Couldn't copy file.");?>
  这个PHP文件系统相关函数的例子是一个文件备份系统的原型。在这段脚本运行时,它把文件拷贝到一个不同的位置进行保存。稍微修改一下守护程序,就可以在一天中你指定的时刻执行它,而无需用户的干预。
  假定你在系统上安装了Lynx,可以创建一个守护程序的条目访问这个文件,访问这个文件会运行这个脚本并建立一个拷贝文件,下面的例子将在上午5点钟运行这个脚本,然后关闭Lynx:
  0 5 * * * [username] lynx -dump http://localhost/copyfile.php 1>/dev/null 2>&1如果运行的是CGI版本的PHP,可以跳过Lynx部分,而直接调用二进制文件:
  0 5 * * * [username] php /path/to/copyfile.php 1>/dev/null 2>&1
 
  PHP二维数组排序的具体方法介绍
  PHP二维数组排序一般情况下是按照第一个数组进行排序,然后再根据一定的规则对调整后面的顺序。只要按照ID就能进行PHP二维数组排序。
  我们今天为大家介绍的是关于PHP二维数组排序的相关介绍,希望所介绍的内容对又需要的新手们有所帮助。我们在学习的时候知道,PHP本身就存在一个多维数据排序的函数。
  bool array_multisort ( array $ar1 [, mixed $arg [, mixed $... [, array $... ]]] )简单实现PHP5多重继承
  下面是手册当中对于array_multisort函数的描述:
  array_multisort() 可以用来一次对多个PHP二维数组排序进行排序,或者根据某一维或多维对多维数组进行排序。
  关联(string)键名保持不变,但数字键名会被重新索引。
  输入数组被当成一个表的列并以行来排序――这类似于 SQL 的 ORDER BY 子句的功能。第一个数组是要排序的主要数组。数组中的行(值)比较为相同的话就按照下一个输入数组中相应值的大小来排序,依此类推。
  从手册中看到,PHP二维数组排序是按照第一个数组进行排序,并且调整后面的顺序。像这样的数组:
  array( 'id' => array(1,3,2),
  'data'=>array('a','c','b'))
  只要按照id进行多维排序,就可以了。但是很多时候,我们构造出的数组是这样的:
  array(
  array('id'=>1,'data'=>'a'),
  array('id'=>3,'data'=>'c'),
  array('id'=>2,'data'=>'b')
  );
  PHP二维数组排序的元素是按行排列的,需要按其中的一列进行排序。PHP好像也没提供类似矩阵转置的函数,所以不能直接使用array_multisort进行多维排序。不过只需要先把排序的列抽取出来,作为第一个参数传给array_multisort即可。
 
    解析PHP5析构函数的具体使用方法
  我们在学习PHP语言的时候,可能会发现,它的构造函数与析构函数与以往有些许不同。比如PHP5析构函数被定义为一个名为__destruct()的函数。
  在升级版的PHP5中,都有构造函数与PHP5析构函数。但是在具体的实际操作中,他们的功能和使用方式已经和普通的函数方式有所不同。每当实例化一个类对象时,都会自动调用这个与类同名的函数,使对象具有与生俱来的一些特征。
  在PHP5中,则使用__construct()来命名构造函数,而不再是与类同名,这样做的好处是可以使构造函数独立于类名,当类名改变时,不需要在相应的去修改构造函数的名称。
  与构造函数相反,在PHP5中,可以定义一个名为__destruct()的函数,称之为PHP5析构函数,PHP将在对象在内存中被销毁前调用析构函数,使对象在彻底消失之前完成一些工作。对象在销毁一般可以通过赋值为null实现。
  <?php
  /*
  * Created on 2009-11-18
  *
  * To change the template for this generated file go to* Window - Preferences - PHPeclipse - PHP - Code Templates*/
  class student{
  //属性
  private $no;
  private $name;
  private $gender;
  private $age;
  private static $count=0;
  function __construct($pname)
  {
  $this->name = $pname;
  self::$count++;
  }
  function __destruct()
  {
  self::$count--;
  }
  static function get_count()
  {
  return self::$count;
  }
  }
  $s1=new student("Tom");
  print(student::get_count());
  $s2=new student("jerry");
  print(student::get_count());
  $s1=NULL;
  print(student::get_count());
  $s2=NULL;
  print(student::get_count());
  ?>
  上面这段代码就是PHP5析构函数的具体使用方法,希望对大家有所帮助。
 

上一篇:疑难答疑 PHP服务端返回Json问题

下一篇:几款主流PHP框架的优缺点评比