PHP读取CSV文件

浏览量:2719 | 分类:我的日记 | 发布日期:2009-09-15

(工作时遇到的问题,记录一下,备忘)

PHP读取CSV文件,由于Excel最多只能显示65536行,数据量大不能完全显示
CSV文件直接导入Mysql不好使, 于是采用PHP直接CSV文件今天发现fgetcsv()函数操作CSV文件读取入库

代码还没做整理,

代码如下
  1. <?php
  2. set_time_limit(0);
  3.  
  4. $host = 'localhost';
  5. $user = 'root';
  6. $pswd = '';
  7. $dbname = 'email';
  8.  
  9. $emailArr = array('admin', 'administrator', 'contact', 'info', 'support', 'webmaster');
  10.  
  11. mysql_connect($host,$user,$pswd) or die('connect error');
  12. mysql_select_db($dbname) or die('Select db error');
  13.  
  14. function randStr($len=6) {
  15.     $chars='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
  16.     mt_srand((double)microtime()*1000000*getmypid());
  17.     $password='';
  18.     while(strlen($password)<$len)
  19.         $password.=substr($chars,(mt_rand()%strlen($chars)),1);
  20.     return $password;
  21. }
  22.  
  23. $csvFileName = '2.csv';
  24. $row = 0;
  25. $handle = fopen($csvFileName,"r");
  26. while ($data = fgetcsv($handle, 1000, ",")) {
  27.     //$sql = mysql_query("INSERT INTO email SET email = '$data[1]'");
  28.     $rand = randStr(15);
  29.     $row++;
  30.     $domain = $data[1];
  31.     for ($i = 0; $i < count($emailArr); $i++) {
  32.         $email = $emailArr[$i].'@'.$domain;
  33.         $sql = mysql_query("INSERT INTO email SET email = '$email', domain = '$domain', domain_id = '$row', rand = '$rand'");
  34.     }
  35. }
  36. fclose($handle);
  37. echo 'success';
  38. exit;
  39. $content = file_get_contents($csvFileName);
  40. print_r($content);exit;
  41. $content = explode("n",$content);
  42.  
  43. for ($i = 0; $i < count($content); $i++) {
  44.     print_r($content);exit;
  45.     $randStr = '';
  46.     foreach ($content as $value) {
  47.         $randStr = randStr(6);
  48.         $mail = explode(",",$value);
  49.         $companyArr = explode(".",$mail[1]);
  50.         $companyName = $companyArr[0];
  51.         //echo $companyName;exit;
  52.         for ($j = 0; $j < count($emailArr); $j++) {
  53.             $email = $emailArr[$j]."@".$mail[1];
  54.             echo $email.'<br />';
  55.             echo $randStr.'<br />';
  56.             echo $companyName.'<br />';
  57.             //$sql = mysql_query("INSERT INTO mail_source SET mail = '$email'");
  58.         }
  59.     }
  60.     exit;
  61. }
  62.  
  63. ?>

 

上一篇: Mysql导入CSV文件

下一篇: 想起第一次工作的时候

评论