加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

从php [copy]中的csv文件中读取大数据

发布时间:2020-12-13 21:28:24 所属栏目:PHP教程 来源:网络整理
导读:参见英文答案 file_get_contents = PHP Fatal error: Allowed memory exhausted????????????????????????????????????3个 我正在读csv用mysql检查记录是否存在于我的表中或不存在于php中. csv有大约25000条记录当我运行我的代码时,它在2分10秒后显示“服务不
参见英文答案 > 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亿个密码.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读