首页 文章

fopen只有部分 Headers 在php中的文件

提问于
浏览
2

所以我试图使用fopen从我的服务器调用一个文件,每天都使用相同的部分 Headers 自动下载,每次都相同但只想获取今天的文件 . 例如,如果文件是file20160310.csv我可以用 $file = fopen('file'. $today . '.csv', 'r') or die('cant open file'); 得到它 $today = date("m-d-y"); (但文件名是file20160310875647.csv,日期后面的数字是随机的)有一种方法可以在我做fopen时从 Headers 中规定这些数字(我无法更改锁定的文件)

解决方案 - 所以下面的两个答案都有效但我使用了T0xicCode的答案来包含 . $ today . 在答案和鸡蛋回答fgetcsv的帮助

$ list = glob('ShipToUsShipments' . $ today . '* .csv'); $ filename = $ list [0]; $ file = fopen($ filename,'r')或die('cant open file'); fetcsv($文件,1000, “”); ($ line = fgetcsv(fopen($ file))){echo $ line [0]; }

2 回答

  • 1

    尝试使用glob()返回与 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');
    }
    
  • 4

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

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

    glob 返回一个数组,因此您必须将其编入索引 . 如果多个文件与给定模式匹配,则必须确定要使用哪个文件 .

相关问题