Foros del Web » Programando para Internet » PHP »

Separar cadena de nombre y correo

Estas en el tema de Separar cadena de nombre y correo en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 03/09/2020, 22:53
Avatar de el_cesar  
Fecha de Ingreso: mayo-2001
Ubicación: Cali
Mensajes: 2.423
Antigüedad: 23 años
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.......
  #2 (permalink)  
Antiguo 05/09/2020, 21:27
SLD
 
Fecha de Ingreso: diciembre-2013
Mensajes: 121
Antigüedad: 10 años, 4 meses
Puntos: 6
Respuesta: Separar cadena de nombre y correo

hola,
PHP tiene funciones NATIVAS para LECTURA de CSV.

Para generar el CSV ya sábes que solo separas con comas y enierras en DOBLES comillas.

Etiquetas: cadena, correo, header, nombre, pdf, post
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:20.