fopen 一个只有部分标题的文件 php

fopen a file with only part of title in php

所以我正在尝试使用 fopen 从我的服务器调用一个文件,该文件每天自动下载,每次都具有相同的部分标题,但只想获取今天的文件。例如,如果文件是 file20160310.csv 我可以用 $file = fopen('file'. $today . '.csv', 'r') or die('cant open file'); 得到它,其中 $today = date("m-d-y"); (但文件名是 file20160310875647.csv 并且日期之后的数字是随机的)当我打开时,有没有办法从标题中删除这些数字(我无法更改它是锁定的文件)

解决方案

解决方案——所以下面的两个答案都有效,但我使用了 T0xicCode 的答案来包含 .$today。在答案和鸡蛋答案中获得 fgetcsv

的帮助

$list = glob('ShipToUsShipments'. $today . '*.csv');

$filename = $list[0];

$file = fopen($filename, 'r') or die('cant open file');

fetcsv($file,1000,",");

($line = fgetcsv(fopen($file))) { echo $line[0]; }

尝试使用 glob() 来 return 匹配 fileYYYYMMDD* 格式的文件列表:

$list = glob('file20160310*.csv');
$file = $list[0] // Assuming there'll only be one match for each day.
$file = fopen($file, 'r') or die('cant open file');

如果每天有多个文件,那么您可以:

$list = glob('file20160310*.csv');
foreach ($list AS $file) {
    fopen($file, 'r') or die('cant open file');
}

fopen 需要文件的确切名称。您将需要找到文件的确切名称。您将能够使用 glob 找出文件的完整名称:

$list = glob('file' . $today . '*.csv');
$filename = $list[0];
$file = fopen($filename, 'r') or die('cant open file');

glob returns 一个数组,因此您必须对其进行索引。如果多个文件与给定的模式相匹配,您必须确定使用哪一个。