Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/09/2020, 22:53
Avatar de el_cesar
el_cesar
 
Fecha de Ingreso: mayo-2001
Ubicación: Cali
Mensajes: 2.423
Antigüedad: 23 años, 9 meses
Puntos: 20
Separar cadena de nombre y correo

Hola a todos, tengo este script que me recibe un archivo txt y logré separarlo por salto de línea para que me tome los nombres de unas personas y genere un certificado de asistencia a un evento para cada persona, todo funciona bien, me genera el archivo con el nombre correspondiente pero ahora el cliente necesita que esos certificados sean enviados por correo electrónico a cada persona, estoy subiendo el archivo ya no en .txt si no en csv pero la verdad no he encontrado como separarlo para que en un lado me quede el nombre y en otro el correo para asi poder enviarlo con una función que ya tengo, ¿alguien me hecha la mano?
Código PHP:
Ver original
  1. require('fpdf/fpdf.php');
  2.     define("UPLOAD_DIR", "uploads/");
  3.  
  4.     function getNombres( $file ){
  5.         $arr = array();
  6.         $aux = file_get_contents($file);
  7.         $arr = explode("\n",$aux);
  8.         return $arr;
  9.     }
  10.  
  11.     function processFile($myFile){
  12.  
  13.         if (!empty($myFile)) {
  14.  
  15.             if ($myFile["error"] !== UPLOAD_ERR_OK) {
  16.                 echo "<p>An error occurred.</p>";
  17.                 exit;
  18.             }
  19.  
  20.             // ensure a safe filename
  21.             $name = preg_replace("/[^A-Z0-9._-]/i", "_", $myFile["name"]);
  22.  
  23.             // don't overwrite an existing file
  24.             $i = 0;
  25.             $parts = pathinfo($name);
  26.             while (file_exists(UPLOAD_DIR . $name)) {
  27.                 $i++;
  28.                 $name = $parts["filename"] . "-" . $i . "." . $parts["extension"];
  29.             }
  30.  
  31.             // preserve file from temporary directory
  32.             $success = move_uploaded_file($myFile["tmp_name"], UPLOAD_DIR . $name);
  33.             if (!$success) {
  34.                 echo "<p>Unable to save file.</p>";
  35.                 exit;
  36.             }
  37.  
  38.             // set proper permissions on the new file
  39.             //chmod(UPLOAD_DIR . $name, 0644);
  40.             return UPLOAD_DIR . $name;
  41.         }
  42.     }
  43.  
  44.     /* creates a compressed zip file */
  45.     function create_zip($files = array(),$destination = '',$overwrite = false) {
  46.  
  47.         if(file_exists($destination) && !$overwrite) { return false; }
  48.  
  49.         $valid_files = array();
  50.         if(is_array($files)) {
  51.             foreach($files as $file) {
  52.                 if(file_exists($file)) {
  53.                     $valid_files[] = $file;
  54.                 }
  55.             }
  56.         }
  57.         //if we have good files...
  58.         if(count($valid_files)) {
  59.             $zip = new ZipArchive();
  60.             if($zip->open($destination,$overwrite ? ZIPARCHIVE::OVERWRITE : ZIPARCHIVE::CREATE) !== true) {
  61.                 return false;
  62.             }
  63.             foreach($valid_files as $file) {
  64.                 $zip->addFile($file,($file));
  65.             }
  66.             //debug
  67.             //echo 'The zip archive contains ',$zip->numFiles,' files with a status of ',$zip->status;
  68.  
  69.             $zip->close();
  70.            
  71.             return file_exists($destination);
  72.         }else{
  73.             return false;
  74.         }
  75.     }
  76.  
  77.  
  78.     $folder = $_POST['destino']."/";
  79.     $source = processFile($_FILES['source']);
  80.     $bg = processFile($_FILES['bg']);
  81.     $dir = 'resultado/'.$folder.'';
  82.     $formato = array($_POST['ancho'] , $_POST['alto']);
  83.     $archivos = array();
  84.  
  85.     if (!file_exists($dir)) {
  86.         mkdir($dir, 0777, true);
  87.     }
  88.  
  89.     $arr = getNombres($source);
  90.     $cont = 0;
  91.  
  92.     $pos = array(
  93.         'x' => $_POST['posx']? $_POST['posx']       : 40,
  94.         'y' => $_POST['posy']? $_POST['posy'] - 10  : 40
  95.     );
  96.  
  97.     switch ($_POST['textAlign']) {
  98.         case 'C':
  99.             $pos['x'] = $pos['x']-20;
  100.             break;
  101.         case 'R':
  102.             $pos['x'] = $pos['x']-40;
  103.             break;
  104.     }
  105.  
  106.     foreach($arr as $file ){
  107.  
  108.         $file = trim($file);
  109.         if( $file == '' ) continue;
  110.  
  111.         $filename = str_replace(array('.',','),'',$file);
  112.         $filename = strtolower($file);
  113.  
  114.         if($_POST['unArchivo'] == 0 || $cont == 0){
  115.             $pdf=new FPDF("L","mm",$formato);
  116.         }
  117.         $pdf->AddPage();
  118.         $pdf->SetMargins(0,0,0);
  119.         $pdf->Image($bg, 0, 0,$_POST['ancho'],$_POST['alto']);
  120.         $pdf->SetFont($_POST['fontFamily'],'B',$_POST['fontSize']);
  121.         $pdf->SetXY($pos['x'], $pos['y']);
  122.         $pdf->Cell(40,10,$file,0,0,$_POST['textAlign']);
  123.  
  124.         if($_POST['unArchivo'] == 0){
  125.             $filename = $dir.$filename.".pdf";
  126.             $pdf->Output($filename,"F");
  127.             $archivos[] = $filename;
  128.         }
  129.         $cont++;
  130.     }
  131.  
  132.     if($_POST['unArchivo'] == 1){
  133.         $pdf->Output($dir."/certificados.pdf","F");
  134.         $archivos[] = $dir."/certificados.pdf";
  135.     }
  136.  
  137.     //create_zip($archivos, UPLOAD_DIR.'resultado.zip', true);
  138.     unlink(UPLOAD_DIR.$_FILES['source']['name']);
  139.     unlink(UPLOAD_DIR.$_FILES['bg']['name']);
  140.  
  141.     //header('Location: download.php?f='.UPLOAD_DIR.'resultado.zip');
  142.  
  143.     $msj = $cont." Certificados generados satisfactoriamente";
  144. }
  145. ?>
  146.  
  147. De antemano muchas gracias
__________________
Say no more.......