簡體   English   中英

如何從數組結果創建.csv文件?

[英]How to create a .csv file from the results of an array?

我正在使用PHP類實時檢查電子郵件的有效性,PHP腳本運行良好:檢查電子郵件並將結果打印在同一頁上,為每個經過驗證的電子郵件創建一個<td>元素。

我的問題是我要驗證200,000封電子郵件...腳本的結果是一個龐大的列表,導致我的瀏覽器停止工作。

是否可以使用結果創建.csv文件,而不是僅將其打印在頁面上? 如果是這樣,我該怎么做?

這是我的源代碼:

index.php <-這是顯示結果的文件。 emailvalid.php <-這是PHP類

 <!DOCTYPE html> <!--[if IE 8]> <html lang="en" class="ie8"> <![endif]--> <!--[if IE 9]> <html lang="en" class="ie9"> <![endif]--> <!--[if !IE]><!--> <html lang="en"> <!--<![endif]--> <head> <title>EmailValid</title> <!-- Meta --> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="description" content=""> <meta name="author" content=""> <link rel="shortcut icon" href="favicon.ico"> <link href='http://fonts.googleapis.com/css?family=Lato:300,400,300italic,400italic' rel='stylesheet' type='text/css'> <link href='http://fonts.googleapis.com/css?family=Montserrat:400,700' rel='stylesheet' type='text/css'> <!-- Global CSS --> <link rel="stylesheet" href="assets/plugins/bootstrap/css/bootstrap.min.css"> <!-- Plugins CSS --> <link rel="stylesheet" href="assets/plugins/font-awesome/css/font-awesome.css"> <link rel="stylesheet" href="assets/plugins/prism/prism.css"> <!-- Theme CSS --> <link id="theme-style" rel="stylesheet" href="assets/css/styles.css"> <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries --> <!--[if lt IE 9]> <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script> <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script> <![endif]--> </head> <body data-spy="scroll"> <!---//Facebook button code--> <div id="fb-root"></div> <script>(function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.0"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk'));</script> <!-- ******PROMO****** --> <section id="promo" class="promo section offset-header"> <div class="container text-center"> <h2 class="title">Email<span class="highlight">Valid</span></h2> <p class="intro">Check the email validity in real-time <form method="post"> <textarea rows="10" cols="150" style="color:black" name="email" placeholder="Insert here your text. The robot will extract all the emails from the text"></textarea> </p> <div class="btns"> <input type="submit" value="Check" name="Check" class="btn btn-cta-secondary"> </div> </form> <?php include 'assets/emailvalid.php'; ?> <ul class="meta list-inline"> </ul><!--//meta--> </div><!--//container--> </section><!--//promo--> <!-- Javascript --> <script type="text/javascript" src="assets/plugins/jquery-1.11.1.min.js"></script> <script type="text/javascript" src="assets/plugins/jquery-migrate-1.2.1.min.js"></script> <script type="text/javascript" src="assets/plugins/jquery.easing.1.3.js"></script> <script type="text/javascript" src="assets/plugins/bootstrap/js/bootstrap.min.js"></script> <script type="text/javascript" src="assets/plugins/jquery-scrollTo/jquery.scrollTo.min.js"></script> <script type="text/javascript" src="assets/plugins/prism/prism.js"></script> <script type="text/javascript" src="assets/js/main.js"></script> </body> </html> 

 <?php $show_details ='yes'; // choice : 'yes' or 'no' $disposable_email ='yes'; // choice : 'yes' or 'no' $check_mx ='yes'; // choice : 'yes' or 'no' if(!empty($_POST['Check'])){ if(!empty($_POST['email'])){ $emails = get_email($_POST['email']); require_once('emailvalidclass.php'); //include emailvalidclass.php file $emailChecker = new emailChecker; // Make a new instance if($show_details=='yes'){ $emailChecker->supress_output = 0; }else{ $emailChecker->supress_output = 1; } if($disposable_email=='yes'){ $emailChecker->filter_dea = 1; }else{ $emailChecker->filter_dea = 0; } if($check_mx=='yes'){ $emailChecker->check_mx = 1; }else{ $emailChecker->check_mx = 0; } $emailChecker->smtp_test = 0; $emailsubmited=count($emails); echo '<br><b>Emails : </b>'.$emailsubmited; echo '<hr><table cellpadding="10" cellspacing="10" border="1" style="margin-top: 15px;"> <tr style="font-size:20px;background-color:black;color:white"> <td>Email</td> <td>Passed</td>'; if($show_details=='yes'){ echo '<td style="text-align:left">Email valid ?</td>'; if($disposable_email=='yes'){ echo '<td>Disposable ?</td>'; } if($check_mx=='yes'){ echo '<td>Domain MX Check ?</td>'; } } echo ' </tr>'; $array_good_emails=array(); $array_bad_emails=array(); $array_good_no_duplicate_emails=array(); foreach((array)$emails as $key=>$e){ if(empty($e)) continue; $e = $emailChecker->check($e); $e = $e['result']; // echo '<pre>'; // print_r($e); // echo '</pre>'; if($e['success']){ $array_good_emails[]=htmlspecialchars($e['query']); }else{ $array_bad_emails[]=htmlspecialchars($e['query']); } ?> <tr> <td><?php echo htmlspecialchars($e['query']); ?></td> <?php if($e['success']){ echo '<td style="background-color:green">yes</td>'; }else{ echo '<td style="background-color:red">no</td>'; } ?> <td> <?php if(!empty($e['report']['validate_email'])){ echo 'yes'; }elseif(!empty($e['errors']['validate_email'])){ echo 'no'; } ?> </td> <?php if($show_details=='yes'){ ?> <?php if($disposable_email=='yes'){ ?> <td> <?php if(!empty($e['report']['filter_dea'])){ echo 'no'; }elseif(!empty($e['errors']['filter_dea'])){ echo 'yes'; }else{ echo '-'; } ?> </td> <?php } ?> <?php if($check_mx=='yes'){ ?> <?php if(!empty($e['report']['check_mx'])){ echo '<td>yes</td>'; }elseif(!empty($e['errors']['check_mx'])){ echo '<td>no</td>'; }else{ echo '<td>-</td>'; } ?> <?php } ?> <?php } ?> </tr> <?php } echo '</table><br><br>'; ?> <div class="panel panel-default"> <div class="panel-heading"> <h4 class="panel-title"> <a data-toggle="collapse" data-parent="#accordion" href="#collapseTwo">Show Passed/Good Emails</a> </h4> </div> <div id="collapseTwo" class="panel-collapse in" style="height: auto;"> <div class="panel-body" style="color:black"> <?php echo implode("<br>",$array_good_emails); ?> </div> </div> </div> <div class="panel panel-default"> <div class="panel-heading"> <h6 class="panel-title"> <a data-toggle="collapse" data-parent="#accordion" href="#collapseOne" class="collapsed">Show Bad Emails</a> </h6> </div> <div id="collapseOne" class="panel-collapse collapse" style="height: 0px;"> <div class="panel-body" style="color:black"> <?php echo implode("<br>",$array_bad_emails); ?> </div> </div> </div> <div class="panel panel-default"> <div class="panel-heading"> <h4 class="panel-title"> <a data-toggle="collapse" data-parent="#accordion" href="#collapseFour" class="collapsed">Show Passed/Good Emails (without duplicate emails) </a> </h4> </div> <div id="collapseFour" class="panel-collapse collapse"> <div class="panel-body" style="color:black"> <?php $array_good_no_duplicate_emails=array_unique($array_good_emails); echo implode("<br>",$array_good_no_duplicate_emails); ?> </div> </div> </div> <?php }else{ echo 'Email field empty. Please, try again'; } } function get_email($text) { ## Regex taken from http://bit.ly/Tq2PYP PHP's FILTER_VALIDATE_EMAIL function. $email_pattern = "/(?!(?:(?:\\\\x22?\\\\x5C[\\\\x00-\\\\x7E]\\\\x22?)|(?:\\\\x22?[^\\\\x5C\\\\x22]\\\\x22?)){255,})(?!(?:(?:\\\\x22?\\\\x5C[\\\\x00-\\\\x7E]\\\\x22?)|(?:\\\\x22?[^\\\\x5C\\\\x22]\\\\x22?)){65,}@)(?:(?:[\\\\x21\\\\x23-\\\\x27\\\\x2A\\\\x2B\\\\x2D\\\\x2F-\\\\x39\\\\x3D\\\\x3F\\\\x5E-\\\\x7E]+)|(?:\\\\x22(?:[\\\\x01-\\\\x08\\\\x0B\\\\x0C\\\\x0E-\\\\x1F\\\\x21\\\\x23-\\\\x5B\\\\x5D-\\\\x7F]|(?:\\\\x5C[\\\\x00-\\\\x7F]))*\\\\x22))(?:\\\\.(?:(?:[\\\\x21\\\\x23-\\\\x27\\\\x2A\\\\x2B\\\\x2D\\\\x2F-\\\\x39\\\\x3D\\\\x3F\\\\x5E-\\\\x7E]+)|(?:\\\\x22(?:[\\\\x01-\\\\x08\\\\x0B\\\\x0C\\\\x0E-\\\\x1F\\\\x21\\\\x23-\\\\x5B\\\\x5D-\\\\x7F]|(?:\\\\x5C[\\\\x00-\\\\x7F]))*\\\\x22)))*@(?:(?:(?!.*[^.]{64,})(?:(?:(?:xn--)?[a-z0-9]+(?:-[a-z0-9]+)*\\\\.){1,126}){1,}(?:(?:[az][a-z0-9]*)|(?:(?:xn--)[a-z0-9]+))(?:-[a-z0-9]+)*)|(?:\\\\[(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){7})|(?:(?!(?:.*[a-f0-9][:\\\\]]){7,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?)))|(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){5}:)|(?:(?!(?:.*[a-f0-9]:){5,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3}:)?)))?(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))(?:\\\\.(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))){3}))\\\\]))/i"; $raw = $text; $newlines = array("\\t","\\n","\\r","\\x20\\x20","\\0","\\x0B"); $content = str_replace($newlines, "----", html_entity_decode($raw)); $content2 = preg_replace("/\\s/", "-", $content); $content2 = preg_replace("/\\-+/", "|", $content2); $content2 = explode("|", $content2); $emails = array(); foreach( $content2 as $line) { preg_match("/@/", $line, $match); if( count($match) > 0 ) { preg_match_all($email_pattern, $line, $email_match); if( count($email_match) > 0 ) { foreach($email_match[0] as $key=>$email) { $emails[] = $email; } } } } return $emails; } ?> 

我嘗試按照@jason的答案給出的說明進行操作,現在可以將生成的電子郵件保存在CSV文件中...但是csv文件包含重復的信息,並且index.php的標題打印為列。

這是我的代碼:

 <?php $show_details ='no'; // choice : 'yes' or 'no' $disposable_email ='no'; // choice : 'yes' or 'no' $check_mx ='no'; // choice : 'yes' or 'no' if(!empty($_POST['Check'])){ if(!empty($_POST['email'])){ $emails = get_email($_POST['email']); require_once('emailvalidclass.php'); //include emailvalidclass.php file $emailChecker = new emailChecker; // Make a new instance if($show_details=='yes'){ $emailChecker->supress_output = 0; }else{ $emailChecker->supress_output = 1; } if($disposable_email=='yes'){ $emailChecker->filter_dea = 1; }else{ $emailChecker->filter_dea = 0; } if($check_mx=='yes'){ $emailChecker->check_mx = 1; }else{ $emailChecker->check_mx = 0; } $emailChecker->smtp_test = 0; $emailsubmited=count($emails); $fileName = 'emails.csv'; header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header('Content-Description: File Transfer'); header("Content-type: text/csv"); header("Content-Disposition: attachment; filename={$fileName}"); header("Expires: 0"); header("Pragma: public"); $fh = @fopen( 'php://output', 'w' ); $headerDisplayed = false; $array_good_emails=array(); $array_bad_emails=array(); foreach((array)$emails as $key=>$e){ // Add a header row if it hasn't been added yet if(empty($e)) continue; $e = $emailChecker->check($e); $e = $e['result']; if($e['success']){ $array_good_emails[]=htmlspecialchars($e['query']); }else{ $array_bad_emails[]=htmlspecialchars($e['query']); } // Put the data into the stream fputcsv($fh, $array_good_emails); } // Close the file fclose($fh); // Make sure nothing else is sent, our file is done exit; } }else{ } function get_email($text) { ## Regex taken from http://bit.ly/Tq2PYP PHP's FILTER_VALIDATE_EMAIL function. $email_pattern = "/(?!(?:(?:\\\\x22?\\\\x5C[\\\\x00-\\\\x7E]\\\\x22?)|(?:\\\\x22?[^\\\\x5C\\\\x22]\\\\x22?)){255,})(?!(?:(?:\\\\x22?\\\\x5C[\\\\x00-\\\\x7E]\\\\x22?)|(?:\\\\x22?[^\\\\x5C\\\\x22]\\\\x22?)){65,}@)(?:(?:[\\\\x21\\\\x23-\\\\x27\\\\x2A\\\\x2B\\\\x2D\\\\x2F-\\\\x39\\\\x3D\\\\x3F\\\\x5E-\\\\x7E]+)|(?:\\\\x22(?:[\\\\x01-\\\\x08\\\\x0B\\\\x0C\\\\x0E-\\\\x1F\\\\x21\\\\x23-\\\\x5B\\\\x5D-\\\\x7F]|(?:\\\\x5C[\\\\x00-\\\\x7F]))*\\\\x22))(?:\\\\.(?:(?:[\\\\x21\\\\x23-\\\\x27\\\\x2A\\\\x2B\\\\x2D\\\\x2F-\\\\x39\\\\x3D\\\\x3F\\\\x5E-\\\\x7E]+)|(?:\\\\x22(?:[\\\\x01-\\\\x08\\\\x0B\\\\x0C\\\\x0E-\\\\x1F\\\\x21\\\\x23-\\\\x5B\\\\x5D-\\\\x7F]|(?:\\\\x5C[\\\\x00-\\\\x7F]))*\\\\x22)))*@(?:(?:(?!.*[^.]{64,})(?:(?:(?:xn--)?[a-z0-9]+(?:-[a-z0-9]+)*\\\\.){1,126}){1,}(?:(?:[az][a-z0-9]*)|(?:(?:xn--)[a-z0-9]+))(?:-[a-z0-9]+)*)|(?:\\\\[(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){7})|(?:(?!(?:.*[a-f0-9][:\\\\]]){7,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?)))|(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){5}:)|(?:(?!(?:.*[a-f0-9]:){5,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3}:)?)))?(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))(?:\\\\.(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))){3}))\\\\]))/i"; $raw = $text; $newlines = array("\\t","\\n","\\r","\\x20\\x20","\\0","\\x0B"); $content = str_replace($newlines, "----", html_entity_decode($raw)); $content2 = preg_replace("/\\s/", "-", $content); $content2 = preg_replace("/\\-+/", "|", $content2); $content2 = explode("|", $content2); $emails = array(); foreach( $content2 as $line) { preg_match("/@/", $line, $match); if( count($match) > 0 ) { preg_match_all($email_pattern, $line, $email_match); if( count($email_match) > 0 ) { foreach($email_match[0] as $key=>$email) { $emails[] = $email; } } } } return $emails; } ?> 

這是生成的csv文件:

 <!DOCTYPE html> <!--[if IE 8]> <html lang="en" class="ie8"> <![endif]--> <!--[if IE 9]> <html lang="en" class="ie9"> <![endif]--> <!--[if !IE]><!--> <html lang="en"> <!--<![endif]--> <head> <title>EmailValid</title> <!-- Meta --> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width initial-scale=1.0"> <meta name="description" content=""> <meta name="author" content=""> <link rel="shortcut icon" href="favicon.ico"> <link href='http://fonts.googleapis.com/css?family=Lato:300 400 300italic 400italic' rel='stylesheet' type='text/css'> <link href='http://fonts.googleapis.com/css?family=Montserrat:400 700' rel='stylesheet' type='text/css'> <!-- Global CSS --> <link rel="stylesheet" href="assets/plugins/bootstrap/css/bootstrap.min.css"> <!-- Plugins CSS --> <link rel="stylesheet" href="assets/plugins/font-awesome/css/font-awesome.css"> <link rel="stylesheet" href="assets/plugins/prism/prism.css"> <!-- Theme CSS --> <link id="theme-style" rel="stylesheet" href="assets/css/styles.css"> <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries --> <!--[if lt IE 9]> <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script> <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script> <![endif]--> </head> <body data-spy="scroll"> 0 <!-- ******PROMO****** --> <section id="promo" class="promo section offset-header"> <div class="container text-center"> <h2 class="title">Email<span class="highlight">Valid</span></h2> <p class="intro">Check ZSBox email list validity in real-time <form method="post"> <textarea rows="10" cols="150" style="color:black" name="email" placeholder="Insert here your text. The robot will extract all the emails from the text"></textarea> </p> <div class="btns"> <input type="submit" value="Check" name="Check" class="btn btn-cta-secondary"> </div> </form> aksboneyard@sbcglobal.net aksboneyard@sbcglobal.net al__franco@sbcglobal.net aksboneyard@sbcglobal.net al__franco@sbcglobal.net aladydot@aol.com aksboneyard@sbcglobal.net al__franco@sbcglobal.net aladydot@aol.com alabama_annie@yahoo.com aksboneyard@sbcglobal.net al__franco@sbcglobal.net aladydot@aol.com alabama_annie@yahoo.com alac471@yahoo.com aksboneyard@sbcglobal.net al__franco@sbcglobal.net aladydot@aol.com alabama_annie@yahoo.com alac471@yahoo.com akulovvpshark@yahoo.com aksboneyard@sbcglobal.net al__franco@sbcglobal.net aladydot@aol.com alabama_annie@yahoo.com alac471@yahoo.com akulovvpshark@yahoo.com akw408@yahoo.com aksboneyard@sbcglobal.net al__franco@sbcglobal.net aladydot@aol.com alabama_annie@yahoo.com alac471@yahoo.com akulovvpshark@yahoo.com akw408@yahoo.com aksingh@bnr.ca aksboneyard@sbcglobal.net al__franco@sbcglobal.net aladydot@aol.com alabama_annie@yahoo.com alac471@yahoo.com akulovvpshark@yahoo.com akw408@yahoo.com aksingh@bnr.ca aksnownow@mytalk.com aksboneyard@sbcglobal.net al__franco@sbcglobal.net aladydot@aol.com alabama_annie@yahoo.com alac471@yahoo.com akulovvpshark@yahoo.com akw408@yahoo.com aksingh@bnr.ca aksnownow@mytalk.com aktiva@c2i.net aksboneyard@sbcglobal.net al__franco@sbcglobal.net aladydot@aol.com alabama_annie@yahoo.com alac471@yahoo.com akulovvpshark@yahoo.com akw408@yahoo.com aksingh@bnr.ca aksnownow@mytalk.com aktiva@c2i.net alaa_al_saeed@yahoo.com aksboneyard@sbcglobal.net al__franco@sbcglobal.net aladydot@aol.com alabama_annie@yahoo.com alac471@yahoo.com akulovvpshark@yahoo.com akw408@yahoo.com aksingh@bnr.ca aksnownow@mytalk.com aktiva@c2i.net alaa_al_saeed@yahoo.com aks0355@aol.com aksboneyard@sbcglobal.net al__franco@sbcglobal.net aladydot@aol.com alabama_annie@yahoo.com alac471@yahoo.com akulovvpshark@yahoo.com akw408@yahoo.com aksingh@bnr.ca aksnownow@mytalk.com aktiva@c2i.net alaa_al_saeed@yahoo.com aks0355@aol.com alabamaalex@yahoo.com aksboneyard@sbcglobal.net al__franco@sbcglobal.net aladydot@aol.com alabama_annie@yahoo.com alac471@yahoo.com akulovvpshark@yahoo.com akw408@yahoo.com aksingh@bnr.ca aksnownow@mytalk.com aktiva@c2i.net alaa_al_saeed@yahoo.com aks0355@aol.com alabamaalex@yahoo.com al77blackwolf7@email.com aksboneyard@sbcglobal.net al__franco@sbcglobal.net aladydot@aol.com alabama_annie@yahoo.com alac471@yahoo.com akulovvpshark@yahoo.com akw408@yahoo.com aksingh@bnr.ca aksnownow@mytalk.com aktiva@c2i.net alaa_al_saeed@yahoo.com aks0355@aol.com alabamaalex@yahoo.com al77blackwolf7@email.com akula_6@yahoo.com aksboneyard@sbcglobal.net al__franco@sbcglobal.net aladydot@aol.com alabama_annie@yahoo.com alac471@yahoo.com akulovvpshark@yahoo.com akw408@yahoo.com aksingh@bnr.ca aksnownow@mytalk.com aktiva@c2i.net alaa_al_saeed@yahoo.com aks0355@aol.com alabamaalex@yahoo.com al77blackwolf7@email.com akula_6@yahoo.com akurt79@yahoo.com aksboneyard@sbcglobal.net al__franco@sbcglobal.net aladydot@aol.com alabama_annie@yahoo.com alac471@yahoo.com akulovvpshark@yahoo.com akw408@yahoo.com aksingh@bnr.ca aksnownow@mytalk.com aktiva@c2i.net alaa_al_saeed@yahoo.com aks0355@aol.com alabamaalex@yahoo.com al77blackwolf7@email.com akula_6@yahoo.com akurt79@yahoo.com al81g@hotmail.com aksboneyard@sbcglobal.net al__franco@sbcglobal.net aladydot@aol.com alabama_annie@yahoo.com alac471@yahoo.com akulovvpshark@yahoo.com akw408@yahoo.com aksingh@bnr.ca aksnownow@mytalk.com aktiva@c2i.net alaa_al_saeed@yahoo.com aks0355@aol.com alabamaalex@yahoo.com al77blackwolf7@email.com akula_6@yahoo.com akurt79@yahoo.com al81g@hotmail.com alaguvenkat@yahoo.com aksboneyard@sbcglobal.net al__franco@sbcglobal.net aladydot@aol.com alabama_annie@yahoo.com alac471@yahoo.com akulovvpshark@yahoo.com akw408@yahoo.com aksingh@bnr.ca aksnownow@mytalk.com aktiva@c2i.net alaa_al_saeed@yahoo.com aks0355@aol.com alabamaalex@yahoo.com al77blackwolf7@email.com akula_6@yahoo.com akurt79@yahoo.com al81g@hotmail.com alaguvenkat@yahoo.com al.jones@aig.com aksboneyard@sbcglobal.net al__franco@sbcglobal.net aladydot@aol.com alabama_annie@yahoo.com alac471@yahoo.com akulovvpshark@yahoo.com akw408@yahoo.com aksingh@bnr.ca aksnownow@mytalk.com aktiva@c2i.net alaa_al_saeed@yahoo.com aks0355@aol.com alabamaalex@yahoo.com al77blackwolf7@email.com akula_6@yahoo.com akurt79@yahoo.com al81g@hotmail.com alaguvenkat@yahoo.com al.jones@aig.com alagu6@hotmail.com aksboneyard@sbcglobal.net al__franco@sbcglobal.net aladydot@aol.com alabama_annie@yahoo.com alac471@yahoo.com akulovvpshark@yahoo.com akw408@yahoo.com aksingh@bnr.ca aksnownow@mytalk.com aktiva@c2i.net alaa_al_saeed@yahoo.com aks0355@aol.com alabamaalex@yahoo.com al77blackwolf7@email.com akula_6@yahoo.com akurt79@yahoo.com al81g@hotmail.com alaguvenkat@yahoo.com al.jones@aig.com alagu6@hotmail.com 

在此問題上的任何幫助將不勝感激。 謝謝。

要從數組創建CSV行,請使用$csv_line = implode(',',$array_line); 將其吐出到具有CSV擴展名和中提琴的文件中!

另外,如果我看到了您正在使用的數組的print_r()示例(即是否需要任何循環等),則可以給出更深入的答案。

您可能會擁有最大執行量,以阻止其超時。

 ini_set('max_execution_time', 300); //300 seconds = 5 minutes

此代碼將生成csv,您必須根據需要對其進行修改:

<?php
function query_to_csv($db_conn, $query, $filename, $attachment = false, $headers = true) {

    if($attachment) {
        // send response headers to the browser
        header( 'Content-Type: text/csv' );
        header( 'Content-Disposition: attachment;filename='.$filename);
        $fp = fopen('php://output', 'w');
    } else {
        $fp = fopen($filename, 'w');
    }

    $result = mysql_query($query, $db_conn) or die( mysql_error( $db_conn ) );

    if($headers) {
        // output header row (if at least one row exists)
        $row = mysql_fetch_assoc($result);
        if($row) {
            fputcsv($fp, array_keys($row));
            // reset pointer back to beginning
            mysql_data_seek($result, 0);
        }
    }

    while($row = mysql_fetch_assoc($result)) {
        fputcsv($fp, $row);
    }

    fclose($fp);
}

// Using the function
$sql = "SELECT * FROM table";
// $db_conn should be a valid db handle

// output as an attachment
query_to_csv($db_conn, $sql, "test.csv", true);

// output to file system
query_to_csv($db_conn, $sql, "test.csv", false);
?>

這是您需要的:

$fileName = 'emails.csv';

header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header('Content-Description: File Transfer');
header("Content-type: text/csv");
header("Content-Disposition: attachment; filename={$fileName}");
header("Expires: 0");
header("Pragma: public");

$fh = @fopen( 'php://output', 'w' );

$headerDisplayed = false;

foreach ( $your_emails_array as $data ) {
    // Add a header row if it hasn't been added yet
    if ( !$headerDisplayed ) {
        // Use the keys from $data as the titles
        fputcsv($fh, array_keys($data));
        $headerDisplayed = true;
    }

    // Put the data into the stream
    fputcsv($fh, $data);
 }
// Close the file
fclose($fh);
// Make sure nothing else is sent, our file is done
exit;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM