Php 若CSV文件不存在,则函数将继续向数据库中添加空行

Php 若CSV文件不存在,则函数将继续向数据库中添加空行,php,cakephp,csv,Php,Cakephp,Csv,我需要一点帮助。我有一个模型文件,它将CSV文件导入数据库。但我的模型文件从C:\wamp\www\cakephp-2.5.6\app\tmp\uploads\Kontaktid中获取此CSV,如果此文件夹中不存在名为export.CSV的CSV文件,则我的函数将继续向数据库中添加空行 我可以这样做吗(我试图将其添加到控制器中,但不起作用) 这是我的控制器文件: function import() { $this->Kontaktid->import('exp

我需要一点帮助。我有一个模型文件,它将CSV文件导入数据库。但我的模型文件从
C:\wamp\www\cakephp-2.5.6\app\tmp\uploads\Kontaktid
中获取此CSV,如果此文件夹中不存在名为
export.CSV
的CSV文件,则我的函数将继续向数据库中添加空行

我可以这样做吗(我试图将其添加到控制器中,但不起作用)

这是我的控制器文件:

function import() {
            $this->Kontaktid->import('export.csv');
        }
这是我的模型文件:

<?php  

class Kontaktid extends AppModel {
    public $validate = array(
        'title' => array('rule' => 'notEmpty'),
        'body' => array('rule' => 'notEmpty')
    );
    var $name = 'Kontaktid';
    function import($filename) {
        // set the filename to read CSV from
        $filename = TMP . 'uploads' . DS . 'Kontaktid' . DS . $filename;
        // open the file
        $handle = fopen($filename, "r");
        // read the 1st row as headings
        $header = fgetcsv($handle);
        // read each data row in the file
        while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
            $this->query ("INSERT into kontaktids(id,Eesnimi,Perenimi,Maakond,Linn,Tanav,Maja,Telefon,lisanumbrid) values('$data[0]','$data[1]','$data[2]','$data[3]','$data[4]','$data[5]','$data[6]','$data[7]','$data[8]')");
            $this->query;
        }
         print "Import done";
        // close the file
        fclose($handle);
    }
}
您可以使用:

<?php
$filename = '/path/to/export.csv';

if (file_exists($filename)) {
    // do your import stuff.
} else {
    // File is not exist.
}
?>

查看此链接以了解更多信息:

您可以使用以下方法进行操作:

<?php
$filename = '/path/to/export.csv';

if (file_exists($filename)) {
    // do your import stuff.
} else {
    // File is not exist.
}
?>


查看此链接了解更多信息:

while
条件应检查返回值是否也是
NULL
。如果文件无效,则会出现这种情况。
来源:

while条件应检查返回值是否也是
NULL
。如果文件无效,则会出现这种情况。
来源:

我建议不要自己编写代码,这里有一个很棒的库,可以为您解析
csv


我建议不要自己编写代码,这里有一个很棒的库,可以为您解析
csv



有很多方法可以检查文件是否存在:)我相信,但我没有找到解决方案(有很多方法可以检查文件是否存在:)我相信,但我没有找到解决方案(我已经用过了,但不管怎么说,它是在数据库中插入空行,它爆发出这个“文件不存在”,然后它继续在数据库中添加空行,很高兴能帮助你:)我已经用过了,但不管怎么说,它是在数据库中插入空行,它爆发出这个“文件不存在”,然后继续向数据库中添加空行很高兴能帮助您:)是啊,这也行。但哈迪克的答案正是我想要的。谢谢这是要查看文件吗?我添加了
函数导入{
,它说的是
意外的“{”,期望的是”(
为什么?如果我用
)替换
{
,它会说
意外的“新”(T_new)
更新了答案,应该可以,别忘了使用Composeye包含
parseCSV
库,这也可以。但hardik答案正是我想要的。谢谢!这将查看文件?我添加了
函数导入{
,它说
意外的“{”,期待的是”(
为什么?如果我替换
{
使用
,然后它会说
意外的“新”(T_new)
更新了答案,它应该可以工作,不要忘记使用composer包含
parseCSV
function import($filename) {
            // set the filename to read CSV from
            $filename = TMP . 'uploads' . DS . 'Kontaktid' . DS . $filename;
            if (file_exists($filename)) {
                // do your import stuff.
                // open the file
            $csv = new parseCSV($filename);
            //print_r($csv->data);
            //count the rows
                if( count($csv->data) > 0) {
                    foreach($csv->data as $data) {
                       $this->query ("INSERT into kontaktids(id,Eesnimi,Perenimi,Maakond,Linn,Tanav,Maja,Telefon,lisanumbrid) values('$data[0]','$data[1]','$data[2]','$data[3]','$data[4]','$data[5]','$data[6]','$data[7]','$data[8]')");
                       $this->query;
                    }
                }
                print "Import done";
            } else {
               print "File is not exist";.
         }  
}