PHP的十个高级技巧

互联网 | 编辑: 董宇成 2006-12-12 00:00:00转载 一键看全文

全球超过300万个互联网网站的管理员都在使用PHP,使得它成为最为普及的服务器端脚本语言之一。其特点是运行速度快、稳定可靠、跨平台,而且是开放源代码软件。随你使用的水平不同,PHP可以很简单,也可以很复杂,可以只使用它发送HTML表格元素,还可以在PHP应用程序中集成Jav

PHP的十个高级技巧(3)

四、PHP和文件系统的维护

PHP中有许多与文件系统有关的函数,这些函数不仅可以打开文件,还可以显示目录中的内容、移动文件和其他一些功能,许多人甚至用PHP开发基于互联网的文件资源管理器。

关于文件路径的解释:在Windows中,可以在路径中使用/和\符号,而在其他的操作系统中只能使用/符号。出于一致性的缘故,我们统一使用/符号。

下面的脚本样例可以显示一个目录清单,注释已经包含在代码中:

  <? /*把要读取的目录的全路径名存入一个名字为$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运行的系统上的用户必须至少有读取文件的权限。

下面是一个如何拷贝文件的例子:

  <? /*把你要拷贝的原文件的全路径赋给一个名字为$original的变量中,把拷贝的文件的全路径赋予一个名字为$copied的变量中*/

  $original = "/home/me/mydatabasedump";

  $copied = "/archive/mydatabasedumo_1010";

  /* 使用copy()函数拷贝原始文件,如果拷贝没有完成则会显示一个错误信息*/

  @copy($original, $copied) or die("Couldn't copy file.");

  ?>

这个例子是一个文件备份系统的原型。在这段脚本运行时,它把文件拷贝到一个不同的位置进行保存。稍微修改一下守护程序,就可以在一天中你指定的时刻执行它,而无需用户的干预。

假定你在系统上安装了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 4.0中新添加了30个与组数有关的函数,其中一些常见的函数可以判断一个数组中是否包含某个元素,对一个数组中的元素进行计数,添加或删除数组中的元素或者对数组中的元素进行排序。

如果有一个很大的数组,而你需要找出其中是否包含一个特定的元素,就可以使用in_array()。下面的例子将显示“Not found in this array”,因为在一个名字为$namesArray的数组中查找Albert,而在$namesArray数组中不存在这样一个元素。

  <? $namesArray = array("Joe", "Jane", "Bob", "Mary", "Paul", "Eddie", "John");

  $lookingFor = "Albert";

  if (in_array($lookingFor, $namesArray)) {

  echo "You've found it!";

  } else {

  echo "Not found in this array!";

  }

  ?>

如果把$lookingFor的值改为Mary,就会得到“You've found it!”的信息,因为Mary是$namesArray数组中的一个元素。

如果要对一个数组中的元素个数进行计数,只要简单地使用count()函数即可:

  <? $namesArray = array("Joe", "Jane", "Bob", "Mary", "Paul", "Eddie", "John");

  $count = count($namesArray); ?>

  返回的$count的值为7。

可以在一个数组的开头或结尾处添加元素,还可以使用array_merge()来建立一个包含二个或更多数组中元素的新数组,合并时,元素的顺序会按指定的顺序排列,如果原来的数组是被排过序的,在合并后需要对它重新排序。

提示:试试键盘 “← →” 可以实现快速翻页 

一键看全文

本文导航

相关阅读

每日精选

点击查看更多

首页 手机 数码相机 笔记本 游戏 DIY硬件 硬件外设 办公中心 数字家电 平板电脑