button.css
简洁、直观、强悍的前端开发框架,让web开发更迅速、简单。
button.css100素材网 开发,欢迎广大前端码农使用。有好的建议欢迎给我们 留言 哦!
Nicole McIntyre 发布于
php读取txt
网络编程
php
文章来源: 100素材网 更新时间: 2014-08-04 18:21:44
php读取txt php读取txt文件 php读取txt内容 php创建目录
本实例代码主要是通过php来:
1、阅读一个目录的内容
2、删除目录及其内容
3、创建新目录
阅读一个目录的内容

让我们先从简单的清单目录的内容。我们需要三个函数来执行该任务:opendir()、readdir()和closedir()。opendir()函数接受一个参数,这是我们想读的目录,并返回一个目录处理在后续使用readdir()和closedir()调用。opendir()返回False,如果目录不能被打开。

readdir()函数接受一个参数,即处理,opendir()返回,每次我们称之为readdir()返回目录下文件的文件名。readdir()返回False如果结束的目录。注意,readdir()只返回其物品的名字,而不是完整路径。

下面的示例创建一个选择框,列出当先文件目录下中除本身的所有文件。复制和粘贴这段代码并将其保存为索引。php在目录中你希望显示所有文件。它会自动从列表中不包括本身,很容易修改,使其忽略其他文件:
<?php
// open the current directory
$dhandle = opendir('.');
// define an array to hold the files
$files = array();

if ($dhandle) {
   // loop through all of the files
   while (false !== ($fname = readdir($dhandle))) {
      // if the file is not this file, and does not start with a '.' or '..',
      // then store it for later display
      if (($fname != '.') && ($fname != '..') &&
          ($fname != basename($_SERVER['PHP_SELF']))) {
          // store the filename
          $files[] = (is_dir( "./$fname" )) ? "(Dir) {$fname}" : $fname;
      }
   }
   // close the directory
   closedir($dhandle);
}

echo "<select name=\"file\">\n";
// Now loop through the files, echoing out a new select option for each one
foreach( $files as $fname )
{
   echo "<option>{$fname}</option>\n";
}
echo "</select>\n";
?>
首先,我们打开目录阅读opendir()函数,使用一段语句循环遍历每个条目。我们称之为readdir()语句的测试表达式的一部分,将其结果分配给$帧变量。我们是显式地测试返回值是否等于和相同类型的错误因为否则,任何目录条目的名称的求值结果为False过早地将停止循环。身体内的声明,我们检查如果文件不是这个文件,并且不开始。(当前目录)或. .(父目录),然后保存文件名称$文件数组。我们也做一次检查。如果一个完整的文件路径导致目录然后我们添加到文件名称”(Dir)”。

有另一种遍历目录中的所有文件。PHP 5中有一组称为迭代器对象。迭代器帮助消除代码中的问题。例如,PHP 5提供了DirectoryIterator:
<?php
echo "<select name=\"file\">\n";
foreach (new DirectoryIterator('.') as $file) {
   // if the file is not this file, and does not start with a '.' or '..',
   // then store it for later display
   if ( (!$file->isDot()) && ($file->getFilename() != basename($_SERVER['PHP_SELF'])) ) {
      echo "<option>";
      // if the element is a directory add to the file name "(Dir)"
      echo ($file->isDir()) ? "(Dir) ".$file->getFilename() : $file->getFilename();
      echo "</option>\n";
   }
}
echo "</select>\n";
?>
这个例子之前产生相同的结果的代码,使用目录功能,但这段代码更短和更安全的,因为你不能忘记!= = =比较。

删除目录及其内容

PHP已删除文件夹()函数,它接受一个目录名称作为其唯一的参数,并将从文件系统中删除指定的目录,如果流程运行脚本有权这样做。然而,删除目录()函数只能空目录。下面的例子删除空目录命名为“temporary”:

<?php
 rmdir( "temporary" );
?>


如果你想删除非空目录,您应该使用递归。在以下示例中,我们创建递归函数命名deleteDir(),一个目录名作为参数,将每个子目录,删除文件。当目录是空的,我们使用删除文件夹()来删除它。

<?php
function deleteDir($dir) {
   // open the directory
   $dhandle = opendir($dir);

   if ($dhandle) {
      // loop through it
      while (false !== ($fname = readdir($dhandle))) {
         // if the element is a directory, and 
         // does not start with a '.' or '..'
         // we call deleteDir function recursively 
         // passing this element as a parameter
         if (is_dir( "{$dir}/{$fname}" )) {
            if (($fname != '.') && ($fname != '..')) {
               echo "<u>Deleting Files in the Directory</u>: {$dir}/{$fname} <br />";
               deleteDir("$dir/$fname");
            }
         // the element is a file, so we delete it
         } else {
            echo "Deleting File: {$dir}/{$fname} <br />";
            unlink("{$dir}/{$fname}");
         }
      }
      closedir($dhandle);
    }
   // now directory is empty, so we can use
   // the rmdir() function to delete it
   echo "<u>Deleting Directory</u>: {$dir} <br />";
   rmdir($dir);
}

// call deleteDir function and pass to it 
// as a parameter a directory name
deleteDir("temporary");
?>

删除非空目录的另一种方法是使用RecursiveDirectoryIterator RecursiveIteratorIterator。RecursiveIteratorIterator必须告知要提供孩子(文件和子目录),然后父母CHILD_FIRST常数。看一下代码:
<?php
function deleteDir($dir) {
   $iterator = new RecursiveDirectoryIterator($dir);
   foreach (new RecursiveIteratorIterator($iterator, RecursiveIteratorIterator::CHILD_FIRST) as $file) 
   {
      if ($file->isDir()) {
         rmdir($file->getPathname());
      } else {
         unlink($file->getPathname());
      }
   }
   rmdir($dir);
}

deleteDir("temporary");
?>
注意:添加CHILD_FIRST常数是使用PHP 5.1

创建新目录

用PHP创建新目录完成使用mkdir()函数,它接受两个参数。这些参数,在秩序,要创建目录名称和权限模式的新目录,它必须是一个八进制数。模式参数是可选的,并且只在Unix系统有影响。看看这个例子:
<?php
// if /path/to/my exists, this should return true 
// if PHP has the right permissions
mkdir("/path/to/directory", 0777);
?>

默认情况下,只mkdir()函数创建一个目录如果母公司存在。PHP 5中添加了递归参数应或真或假,取决于是否你想创建父目录。在接下来的例子中,我们将真正的作为第三个参数传递给mkdir(),所以这使得函数递归地采取行动,创建任何失踪的父目录。

<?php
// will create /path/to/directory and
// also create /path and /path/to if needed and allowed
mkdir("/path/to/directory", 0777, true);
?>

除非特别声明,此稿为原稿转载请注明原文链接
原文地址: http://www.www100sucai.com/code/1246.html

浏览次数

标签分类

流量查看
站长空间
站长博客