php实现的遍历文件夹下所有文件,编辑删除

复制代码 代码如下:

  <?php

  /*

  遍历文件夹; 功能:(a)可删除文件 (b)可编辑文本,网页文件 (c)可删除文件夹,前提是该文件夹为空 (d)可建立文件,文件夹,修改文件夹名称;

  lost63.com原创, 转载请注明出处. 交流QQ:35501547

  */

  $path=$DOCUMENT_ROOT;

  $path=str_replace("/","\\",$path);

  //指定文件夹

  $path=$path."\\";

  if($_GET['folder'])

  {

  $path.=$_GET['folder']."\\";

  }

  //本页面路径,下面传回时将用到;

  $url=$_SERVER['PHP_SELF'];

  //如果是文件夹,将加上链接;

  function folder($path,$str)

  {

  if(filetype($path.$str)=="dir")

  {

  return "<a href=\"?folder=".$_GET['folder']."\\".$str."\">$str</a>";

  }else{

  return $str;

  }

  }

  switch($_GET['action'])

  {

  case "del";

  if($_GET['type']=="file")

  {

  unlink($_GET['path']);

  }else{

  rmdir($_GET['path']);

  }

  echo "<script type=\"text/javascript\">alert('恭喜,删除成功!');location.href=\"".$url."\";</script>";

  break;

  case "edit";

  if($_GET['type']=="file")

  {

  $file=fopen($_GET['path'],"r");

  while(!feof($file))

  {

  $result.=fgets($file,9999);

  }

  fclose($file);

  echo '<form name="form1" method="post" action="?action=editsave&path='.$_GET['path'].'&type='.$_GET['type'].'">

  <table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">

  <tr>

  <td height="25" bgcolor="#99CC00">>><strong> 编辑文件</strong> > <a href="'.$url.'">返回</a></td>

  </tr>

  <tr>

  <td height="25" align="left" bgcolor="#FFFFCC">->文件名:'.$_GET['path'].'</td>

  </tr>

  <tr>

  <td align="center" bgcolor="#FFFFFF"><textarea name="textarea" cols="135" rows="20">'.$result.'</textarea></td>

  </tr>

  <tr>

  <td align="center" bgcolor="#FFFFFF"><input type="submit" name="Submit" value="提交">

  <input type="reset" name="Submit2" value="重置"></td>

  </tr>

  </table>

  </form>';

  }else{

  echo '<form name="form1" method="post" action="?action=dir_rename&path='.$_GET['path'].'&type='.$_GET['type'].'">

  <table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">

  <tr>

  <td height="25" bgcolor="#99CC00">>><strong> 新建文件</strong> > <a href="'.$url.'">返回</a></td>

  </tr>

  <tr>

  <td height="25" align="left" bgcolor="#FFFFCC">->文件夹更名:

  <input name="filename" type="text" value="'.$_GET['path'].'" size="50"></td>

  </tr>

  <tr>

  <td align="center" bgcolor="#FFFFFF"><input type="submit" name="Submit" value="提交">

  <input type="reset" name="Submit2" value="重置"></td>

  </tr>

  </table>

  </form>';

  }

  break;

  case "editsave";

  $file=fopen($_GET['path'],"w");

  fwrite($file,$_POST['textarea']);

  fclose($file);

  echo "<script type=\"text/javascript\">alert('恭喜,编辑成功!');location.href=\"".$url."\";</script>";

  break;

  case "addfile";

  echo '<form name="form1" method="post" action="?action=filesave&path='.$_GET['path'].'">

  <table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">

  <tr>

  <td height="25" bgcolor="#99CC00">>><strong> 新建文件</strong> > <a href="'.$url.'">返回</a></td>

  </tr>

  <tr>

  <td height="25" align="left" bgcolor="#FFFFCC">->文件名:

  <input name="filename" type="text" value="'.$_GET['path'].'" size="50"></td>

  </tr>

  <tr>

  <td align="center" bgcolor="#FFFFFF"><textarea name="textarea" cols="135" rows="20">输入内容

  </textarea></td>

  </tr>

  <tr>

  <td align="center" bgcolor="#FFFFFF"><input type="submit" name="Submit" value="提交">

  <input type="reset" name="Submit2" value="重置"></td>

  </tr>

  </table>

  </form>';

  break;

  case "filesave";

  //包含点则建立文件,否则建立文件夹

  if(strpos($_POST['filename'],"."))

  {

  $file=fopen($_POST['filename'],"w");

  fwrite($file,$_POST['textarea']);

  fclose($file);

  }else{

  //文件夹若存在则退出,不存在则建立!

  if(file_exists($_POST['filename']))

  {

  exit;

  }else{

  mkdir($_POST['filename']);

  }

  }

  echo "<script type=\"text/javascript\">alert('恭喜,".$_POST['filename']."建立成功!');location.href=\"".$url."\";</script>";

  break;

  case "dir_rename";

  rename($_GET['path'],$_POST['filename']);

  echo "<script type=\"text/javascript\">alert('恭喜,".$_POST['filename']."改名成功!');location.href=\"".$url."\";</script>";

  break;

  default:

  $s=explode("\n",trim(`dir/b/o:gn $path`));

  echo '<table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">

  <tr>

  <td height="25" colspan="4" bgcolor="#99CC00">>><strong> 文件管理</strong> > <a href="?action=addfile&path='.$path.'">建立文件</a> > <a href="'.$url.'">返回</a></td>

  </tr>

  <tr>

  <td height="25" align="center" bgcolor="#FFFFCC">文件/文件夹</td>

  <td align="center" bgcolor="#FFFFCC">文件属性</td>

  <td align="center" bgcolor="#FFFFCC">文件大小</td>

  <td align="center" bgcolor="#FFFFCC">操作</td>

  </tr>';

  foreach($s as $value)

  {

  echo '

  <tr>

  <td height="25" bgcolor="#FFFFFF">'.folder($path,$value).'</td>

  <td align="center" bgcolor="#FFFFFF">'.filetype($path.$value).'</td>

  <td align="right" bgcolor="#FFFFFF">'.round(filesize($path.$value)/1024).'kb</td>

  <td align="center" bgcolor="#FFFFFF"><a href="?action=edit&path='.$path.'\\'.$value.'&type='.filetype($path.$value).'">编辑</a> | <a href="?action=del&path='.$path.'\\'.$value.'&type='.filetype($path.$value).'" onClick="return confirm(\'确定删除->'.$value.'\');">删除</a></td>

  </tr>';

  }

  echo "</table>";

  break;

  }

  ?>