Pregunta

  1. Estoy creando un script que lee un archivo CSV y mostrarlo en un área de texto usando fgetcsv.

      $handle = @fopen($filePath, "r");
    
      if ($handle)
      {
         while (($buffer = fgetcsv($handle, 1000,",")) !== false) 
         {
              foreach($buffer as $buff){
                 echo $buff."\n";
              }
    
         }
      }      
    
  2. El formato del csv es

    "línea 1-Content1", "línea 1-Content2"
    "Line2-Content1", "line2-Content2"

  3. El uso de fgetcsv, el contenido se mostrará en el área de texto sin comillas dobles y coma. ¿Puedo formatear de modo que también mostrará las cotizaciones Duoble y coma?

  4. A continuación, después de guardar usando fputcsv

    $file_to_load = $_GET['filepath'];
    
    $filePath = $dir.$file_to_load;
    
    $trans = trim($_POST['txtarea']);
    $keyarr = split("\n",$trans);
    
    $fp = fopen($filePath, 'w');
    foreach (array ($keyarr) as $fields) {
      fputcsv($fp, $fields);
    }
    
    fclose($fp);
    
  5. Buscando en el archivo csv, que salvó al csv, pero lo muestra como esto

    "línea 1-Content1
    "" Línea 1-Content2
    "" Línea 2-Content1
    ", "Line2-Content2"

  6. Se separa la "línea 1-Content1" y "línea 1-Content2" en dos líneas y poner una coma después del final de cada línea.

  7. Ahora quiero mantener el formato de # 2. ¿Cómo voy a codificarlo?

¿Me puede guiar en la dirección correcta? Gracias!

¿Fue útil?

Solución

Parece que usted desee visualizar el texto CSV en bruto real, no los datos analizados dentro de la CSV. En lugar de utilizar fgetcsv(), sólo tiene que utilizar fgets() y obtendrá la línea de texto sin ningún tipo de análisis, preservando las comillas y comas.

En cuanto a fputcsv, que va a escribir lo que pase en ella, así que asegúrese de que todo lo que viene de vuelta de la forma se limpia (por ejemplo, los saltos de línea adicional despojados a cabo).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top