我如何捕获“nicefile.csv”并在我使用表单中的 POST 提交文件后计算文件中的行数?我尝试了类似$csvlinecount = count(file('$_FILES[csv]'));
没有结果的东西。原因是我有代码可以在我导入 csv 值之前和之后计算我的数据库中的行数,但我会整理出重复的条目。所以如果知道之前的条目数是 100 并且之后是 200 会很有趣,那么我知道它导入了 100 条新行。但如果我不知道 csv 文件中的行数,我不知道在导入过程中跳过了多少行。
<?php
if ($_FILES[csv][size] > 0) {
//get the csv file
$file = $_FILES[csv][tmp_name];
$handle = fopen($file,"r");
//loop through the csv file and insert into database
do {
if ($data[0]) {
mysql_query("INSERT IGNORE INTO wifi (bssid, channel, privacy, ciper, auth, power, essid, latitude, longitude, first_seen, last_seen) VALUES
(
'".addslashes($data[0])."',
'".addslashes($data[1])."',
'".addslashes($data[2])."',
'".addslashes($data[3])."',
'".addslashes($data[4])."',
'".addslashes($data[5])."',
'".addslashes($data[6])."',
'".addslashes($data[7])."',
'".addslashes($data[8])."',
'".addslashes($data[9])."',
'".addslashes($data[10])."'
)
");
}
} while ($data = fgetcsv($handle,1000,","));
//redirect
header('Location: index.php/upload?success=1'); die;
}
//Count after import
$after = mysql_query("SELECT * FROM wifi");
$num_rows_after = mysql_num_rows($after);
//echo stats
echo "Number of rows before - ";
echo "$num_rows_before";
<br>
echo "Number of rows after - ";
echo "$num_rows_after";
//generic success notice
if (!empty($_GET[success])) { echo "<br><b>Result: Your file is imported!</b><br>"; }
//Close connection to databse
mysql_close($connect) ;
?>