0

这个问题有点复杂,但我会尽力解释。如果我的问题没有意义,请随时要求澄清。

情况:

在我的服务器上,每天都会有一个新的 CSV 文件添加到特定文件夹中。CSV 文件将全部保存在同一个文件夹中。他们将有一个与日期一致的名称。例如log_2013_05_24.csv

客观的:

我需要编写一个 PHP 程序来查找所有现有的 CSV 文件,以便我可以搜索它们。最后,我需要找到所有存在的日期。

CSV 文件中的数据如下所示:

4/14/13, 17:30:56, data, data, data, data
4/14/13, 17:31:06, data, data, data, data 
( ... about 10,000 of these ^ a new line for every 10 seconds all day )

我正在使用 php explode 从我当前的 CSV 文件中获取日期。这将产生一个字符串数组,类似于:'4/14/13'。

但是有两个问题:

1:它们是字符串,而不是日期

2:我不知道如何找到所有现有的 CSV 文件,以便 PHP 可以搜索它们。

4

3 回答 3

0

使用DateTime类创建日期

$str = '04/14/13';
$date = new DateTime($str);
echo $date->format('Y-m-d');

使用glob()函数遍历文件系统

$files = glob('*.csv');
var_dump(files);

样本输出:

array(3) {
  [0]=>
  string(8) "test.csv"
  [1]=>
  string(9) "test1.csv"
  [2]=>
  string(9) "test2.csv"
}
于 2013-05-25T03:00:37.490 回答
0
  1. 将您的字符串解析为时间戳,然后将该字符串格式化为您需要的格式。研究使用strtotime()http://us1.php.net/manual/en/function.strtotime.php)和date()http://us1.php.net/manual/en/function.date.php)。
  2. 为以 .csv ( ) 结尾的文件创建一个 bash 脚本和 grep,grep -l *.csv /path/to/dir这是一个小写 L。查看 man 文件以获取更多信息。
于 2013-05-25T03:05:00.333 回答
0

注意:这只是一个建议性的答案,并没有从peterm's答案或其他任何人的答案中删除。

如果我可以添加,这将读取并列出CSV一组文件夹中的所有文件,减去扩展名。

这当然可以很容易地修改为也显示文件的扩展名。

<?php

// You can add any other functions here such as file creation, etc.

$dir = 'csv_folder'; // The directory containing the files. 
$ext = '.csv'; // The file extension. 
?> 

<ul>
<?php foreach (glob($dir . '/*' . $ext) as $file) { ?> 
<li>
<a href="<?php echo "/" . $file ?>"><?php echo basename($file, $ext); ?></a>
</li>

<?php } ?>
</ul>

要显示文件的扩展名,只需更改此行:

<a href="<?php echo "/" . $file ?>"><?php echo basename($file, $ext); ?></a>

<a href="<?php echo "/" . $file ?>"><?php echo basename($file); ?></a>

通过消除, $ext

于 2013-05-25T03:54:28.873 回答