Создание excel из базы данных и отправка в виде вложения электронной почты

Это мой код для извлечения данных из таблицы базы данных

$sql = "select * from tbl_input_values where 1"; $result = mysql_query($sql); $resultRows = mysql_num_rows($result); 

Ниже приведен заголовок, который я использовал для загрузки файла в формате excel:

 header("Content-Type: application/vnd.ms-excel"); header("Content-Disposition: attachment; filename=test.xls"); header("Pragma: no-cache"); header("Expires: 0"); 

И мой код для записи записи выглядит следующим образом:

 if($resultRows>0){ $sep = "\t"; //tabbed character for ($i = 0; $i < mysql_num_fields($result); $i++) { echo mysql_field_name($result,$i) . "\t"; } print("\n"); while($row = mysql_fetch_row($result)){ $schema_insert = ""; for($j=0; $j<mysql_num_fields($result);$j++){ if(!isset($row[$j])) $schema_insert .= "NULL".$sep; elseif ($row[$j] != "") $schema_insert .= "$row[$j]".$sep; else $schema_insert .= "".$sep; } $schema_insert = str_replace($sep."$", "", $schema_insert); $schema_insert = preg_replace("/\r\n|\n\r|\n|\r/", " ", $schema_insert); $schema_insert .= "\t"; print(trim(str_replace(',', " ", $schema_insert))); print "\n"; } } 

Код работает нормально.

Так что теперь я должен отправить это приложение, а не загружать его. Значит, когда пользователь хочет создать файл excel, Excel будет отправлен по электронной почте на указанный идентификатор электронной почты.

Итак, каков был бы лучший способ использования функций электронной почты?

Возможно это может помочь вам ….

 if($resultRows>0){ $sep = "\t"; //tabbed character for ($i = 0; $i < mysql_num_fields($result); $i++) { echo mysql_field_name($result,$i) . "\t"; } print("\n"); while($row = mysql_fetch_row($result)){ $schema_insert = ""; for($j=0; $j<mysql_num_fields($result);$j++){ if(!isset($row[$j])) $schema_insert .= "NULL".$sep; elseif ($row[$j] != "") $schema_insert .= "$row[$j]".$sep; else $schema_insert .= "".$sep; } $schema_insert = str_replace($sep."$", "", $schema_insert); $schema_insert = preg_replace("/\r\n|\n\r|\n|\r/", " ", $schema_insert); $schema_insert .= "\t"; print(trim(str_replace(',', " ", $schema_insert))); print "\n"; } file_put_contents('$path_to_excelfile', $schema_insert); } $to = 'youraddress@example.com'; $subject = 'Test email with attachment'; $random_hash = md5(date('r', time())); $headers = "From: webmaster@example.com\r\nReply-To: webmaster@example.com"; $headers .= "\r\nContent-Type: multipart/mixed; boundary=\"PHP-mixed-".$random_hash."\""; $attachment = chunk_split(base64_encode(file_get_contents('path to file'))); mail( $to, $subject, $message, $headers ); 

REF http://webcheatsheet.com/PHP/send_email_text_html_attachment.php

 **Code to create excel in php:** $dtime=date('Ymd Hi-s'); $dtimeFile=date('YmdHi-s'); $headerTab ="Col1 \t Col2\t Col3\n"; $rowRecords=''; $rowRecords .=preg_replace("/\r|\n|\t/"," ",$Col1)."\t".preg_replace("/\r|\n|\t/", " ",$Col2)."\t".preg_replace("/\r|\n|\t/", " ",Col3). "\t\n"; date_default_timezone_set('America/Los_Angeles'); $filename="Your File Name-".$dtimeFile.".xls"; $path='/pathOfFile/'; $csv_handler = fopen ($path.$filename,'w'); fwrite ($csv_handler,$headerTab); fwrite ($csv_handler,$rowRecords); fclose ($csv_handler); **Code to send html email with attached excel in php:** $file = $path.$filename; $file_size = filesize($file); $handle = fopen($file, "r"); $content = fread($handle, $file_size); fclose($handle); $content = chunk_split(base64_encode($content)); $uid = md5(uniqid(time())); $headers = "From: from@gmail.com"."\r\n"; $headers.= "Bcc: bcc@gmail.com"."\r\n"; $headers.= "MIME-Version: 1.0\r\n"; $headers.= "Content-Type: multipart/mixed; boundary=\"".$uid."\"\r\n\r\n"; $headers .= "This is a multi-part message in MIME format.\r\n"; $headers .= "--".$uid."\r\n"; $headers .= "Content-type:text/html; charset=iso-8859-1\r\n"; $headers .= "Content-Transfer-Encoding: 7bit\r\n\r\n"; $headers .= $msg."\r\n\r\n"; $headers .= "--".$uid."\r\n"; $headers .= "Content-Type: application/octet-stream; name=\"".$filename."\"\r\n"; $headers .= "Content-Transfer-Encoding: base64\r\n"; $headers .= "Content-Disposition: attachment; filename=\"".$filename."\"\r\n\r\n"; $headers .= $content."\r\n\r\n"; $headers .= "--".$uid."--"; $date=date("Ymd"); if(mail($to,"Mail heading--".$date,$msg,$headers)){ echo "Mailed successfully"; } else { echo "Mailed couldn't be sent"; }