而使用file_exists / is_file的语句不会完全处理

时间:2010-12-12 08:04:36

标签: php

我遇到了奇怪的问题。当我使用File_exist或is_file执行文件检查时,它只检查一半文件...我的脚本执行的操作是处理csv文件,并且仅当服务器上存在该文件时才将数据插入表中。如果我删除文件检查一切正常。我仔细检查以确保服务器上存在所有文件,因为某种原因它只是中途停止。

$column_headers = array();
$row_count = 0;

if (mysql_result(
     mysql_query(
       "SELECT count(*) FROM load_test WHERE batch_id='".$batchid."'"
     ), 0
    ) > 0) { 
  die("Error batch already present"); 
}

while (($data = fgetcsv($handle, 0, ",")) !== FALSE) {
  if ($row_count==0){   
    $column_headers = $data;
  } else {
    $dirchk1 = "/temp/files/" . $batchid . "/" .$data[0] . ".wav";
    $dirchk2 = "/files/" . $batchid . "/" . $data[1] . ".wav";

    if (file_exists($dirchk1)) {

      $importword="INSERT into load_test SET
          word = '".$data[2]."',
          batch_id = UCASE('".$batchid."'),
          accent = '".$data[15]."'
          ";

      mysql_query($importword);
      $word_id = mysql_insert_id();
      echo $word_id . "\n";
    }
  }
  ++$row_count;
}

2 个答案:

答案 0 :(得分:0)

使用“-e”测试条件尝试。 例如::

if(-e $dirchk1){
   print "File exists\n";
}

还要确保您的变量$ dirchk1等是否正确填充。 请检查它是否有效。

答案 1 :(得分:0)

脚本处理正确,人为错误乳清验证我。