从php [copy]中的csv文件中读取大数据
作者:互联网
参见英文答案 > file_get_contents => PHP Fatal error: Allowed memory exhausted 3个
我正在读csv&用mysql检查记录是否存在于我的表中或不存在于php中.
csv有大约25000条记录&当我运行我的代码时,它在2分10秒后显示“服务不可用”错误(onload:2m 10s)
这里我添加了代码
// for set memory limit & execution time
ini_set('memory_limit', '512M');
ini_set('max_execution_time', '180');
//function to read csv file
function readCSV($csvFile)
{
$file_handle = fopen($csvFile, 'r');
while (!feof($file_handle) ) {
set_time_limit(60); // you can enable this if you have lot of data
$line_of_text[] = fgetcsv($file_handle, 1024);
}
fclose($file_handle);
return $line_of_text;
}
// Set path to CSV file
$csvFile = 'my_records.csv';
$csv = readCSV($csvFile);
for($i=1;$i<count($csv);$i++)
{
$user_email= $csv[$i][1];
$qry = "SELECT u.user_id, u.user_email_id FROM tbl_user as u WHERE u.user_email_id = '".$user_email."'";
$result = @mysql_query($qry) or die("Couldn't execute query:".mysql_error().''.mysql_errno());
$rec = @mysql_fetch_row($result);
if($rec)
{
echo "Record exist";
}
else
{
echo "Record not exist";
}
}
注意:我只想列出我表中不存在的记录.
请建议我解决这个问题……
解决方法:
处理大文件的一种很好的方法是:https://stackoverflow.com/a/5249971/797620
此方法在http://www.cuddlycactus.com/knownpasswords/(页面已被删除)中使用,仅在几毫秒内搜索1.7亿个密码.
标签:large-data,php,csv 来源: https://codeday.me/bug/20190919/1812216.html