关键词搜索

源码搜索 ×
×

PHP笔记-通过输入获取文件夹中的文件和目录例子

发布2021-12-29浏览778次

详情内容

程序运行截图如下:

点击提交后打印此内容:

文件结构如下:

源码如下:

dirFile.php

  1. <?php
  2. function dirFile($dir, &$error){
  3. if(!is_dir($dir)){
  4. $error = "路径错误";
  5. return false;
  6. }
  7. static $output = array();
  8. $files = scandir($dir);
  9. foreach ($files as $file){
  10. $tmp_file = $dir . "/" . $file;
  11. if(is_dir($tmp_file)){
  12. $output[] = array(
  13. "fileName" => $file,
  14. "directory" => $dir,
  15. "isDir" => true
  16. );
  17. if($file == "." || $file == ".."){
  18. continue;
  19. }
  20. }
  21. else{
  22. $output[] = array(
  23. "fileName" => $file,
  24. "directory" => $dir,
  25. "isDir" => false
  26. );
  27. }
  28. }
  29. return $output;
  30. }
  31. ?>

getFile.php

  1. <?php
  2. $dir = $_GET["dir"] ?? '';
  3. if(!is_dir($dir)){
  4. echo "路径无效";
  5. header("refresh:3; url=index.html");
  6. exit;
  7. }
  8. include_once "dirFile.php";
  9. $files = dirFile($dir, $error);
  10. if(!$files){
  11. echo $error;
  12. header("refresh:3; url=index.html");
  13. exit;
  14. }
  15. // echo "<pre>";
  16. // print_r($files);
  17. // var_dump($files);
  18. // echo "</pre>";
  19. include_once "list.html"
  20. ?>

index.html

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" http-equiv="content-type" content="text/html">
  5. <title>首页</title>
  6. </head>
  7. <body>
  8. <form action="getFile.php" method="get">
  9. 输入目录: <input type="text" name="dir" value="" />
  10. <input type="submit" name="submit" value="提交" />
  11. </form>
  12. </body>
  13. </html>

list.html

  1. <html>
  2. <head>
  3. <meta http-equiv="content-type" content="text/html;charset=utf-8" />
  4. </head>
  5. <body>
  6. <table border=1>
  7. <p style=""><?php echo $dir;?>目录文件列表</p>
  8. <tr><th>序号</th><th>文件名字</th><th>文件类型</th></tr>
  9. <?php $index=1;?>
  10. <?php foreach($files as $file):?>
  11. <?php if($file['fileName']=='.'||$file['fileName'] == '..')continue;?>
  12. <tr>
  13. <td><?php echo $index++;?></td>
  14. <td>
  15. <?php echo $file['fileName'];?>
  16. </td>
  17. <td><?php echo $file['isDir']? '文件夹' : '文件';?></td>
  18. </tr>
  19. <?php endforeach;?>
  20. </table>
  21. </body>
  22. </html>

这里有几个要注意的地方:

①dirFile.php中scandir($dir)函数获取$dir中的文件和目录;

②dirFile.php中is_dir($file)函数判断$file是文件还是目录;

③getFile.php中header("refresh:3; url=index.html")是告诉浏览器,3s后重定向到index.html。

相关技术文章

点击QQ咨询
开通会员
返回顶部
×
微信扫码支付
微信扫码支付
确定支付下载
请使用微信描二维码支付
×

提示信息

×

选择支付方式

  • 微信支付
  • 支付宝付款
确定支付下载