从put-php删除父目录期间

时间:2015-12-17 15:38:24

标签: php

如何从输出中删除父目录句点(。),因为我需要在数据库中添加结果(文件名,文件大小等)。什么是没有点的显示它的最佳方式。我是php新手,真的花时间尽快学习。

代码:

<?PHP

    $dirname     = "C:/folder1/folder2/ftpfiles/";

    date_default_timezone_set("Europe/London");
    $date = date('Y-m-d H:i:s');

    $connection = @mysql_connect('localhost', 'user', 'pass');
    if (!$connection)
        die('Could not connect: ' . mysql_error());
    mysql_select_db('dbname', $connection);

    if (is_dir($dirname)) {

        if ($dh = opendir($dirname)) {

            while (!(($file = readdir($dh)) === false)) {
                echo $file . " ";                
                foreach (glob("$dirname/*.csv") as $files) {
                    $filesize = filesize($files);
                    $filetime = filemtime($files);
                    $filename = strstr($file, '-', true);
                }


                echo $filename . " ";
                echo $filesize . " ";
                echo date('Y-m-d H:i:s', $filetime) . "\n\n";

                $importSQL = "INSERT INTO tableVALUES('".$filename."','".$file."','".$filesize."','".$date."')";
                mysql_query($importSQL) or die(mysql_error());
            }
            closedir($dh);
            mysql_close($connection);
        }
    } else
        echo "No File Exists";
?>

输出

output - Image

1 个答案:

答案 0 :(得分:0)

保持简单。只需确保忽略文件夹列表中的这两个“特殊条目”:

<?php
// ...
if (is_dir($dirname)) {
    if ($dh = opendir($dirname)) {
        while (!(($file = readdir($dh)) === false)) {
            if (($file != '.') && ($file != '..')) {
                // ...
            }
        }
    }
}          

也许更优雅和健壮的是忽略所有文件夹,因为while循环中的代码依赖于所有条目实际上都是文件而不是文件夹本身的事实:

<?php
// ...
if (is_dir($dirname)) {
    if ($dh = opendir($dirname)) {
        while (!(($file = readdir($dh)) === false)) {
            if (!is_dir($file)) {
                // ...
            }
        }
    }
}