从csv文件中删除空行并使用PHP保存它

时间:2013-09-05 05:24:46

标签: php arrays foreach

我有一个40031行的csv文件。我必须删除文件中的所有空行。这里我已经为第13行写了一些PHP代码到第40行,但它没有用。问题出在哪里?

我的PHP代码:

<?php 
function del_blank_row($filename, $startrow, $endrow){
    $status = 0;
    //check if file exists
    if (file_exists($filename)) {
        //end execution for invalid startrow or endrow
        if ($startrow < 0 || $endrow < 0 || $startrow > 0 && $endrow > 0 && $startrow > $endrow) {
            die('Invalid startrow or endrow value');
        }
        $updatedcsv = array();
        $count = 0;
        //open file to read contents
        $fp = fopen($filename, "r");
        //get file contents in an array
        $csvcontents = fgetcsv($fp);
        //for every row
        foreach ($csvcontents as $csvcontent) {
            if (!empty($csvcontent)) {
                array_push($updatedcsv, $csvcontent);
                continue;
            }
        }
        print_r($updatedcsv);
        $fp = fopen($filename, "w");
        fputcsv($fp, $updatedcsv);
        fclose($fp);
    } else {
        die('File does not exist');
    }
}

//-----call-----//
$csvdata=del_blank_row('h.csv', 13, 48);

1 个答案:

答案 0 :(得分:0)

首先以读取模式关闭文件,然后以写入模式打开! 这是fclose($fp);

之前的$fp = fopen($filename, "w");语句