Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/08/2010, 10:36
dhamaso
 
Fecha de Ingreso: mayo-2009
Mensajes: 53
Antigüedad: 14 años, 10 meses
Puntos: 0
cortar cadenas php

hola que tal necesito ayuda con un algoritmo que pueda resolver el siguiente problema:

primero tenemos una cadena que es un archivo separado por comas:

Cita:
001,"Carros, Inc. - obo Maersk Line, Inc.",5129706,5129706
002,"Empresa 2",51444444,7374784
etc......
la cadena anterior la tengo que cortar en pedazos para insertar cada campo en una base de datos, Pero si se dan cuenta:,

Cita:
1.- dentro de la cadena "Carros, Inc. - Obo Maersk Line, Inc." hay comas, eso hace que se me desordene todo al querer cortar la cadena original en comas con algo como esto:
Código PHP:
$file fopen ($ruta"r");//abro el archivo
$separador ",";//declaro mediante que caracter se tiene que separar 
$delimitador "/n";//declaro el limitador

// recorro los datos
                          
while(($data=fgetcsv($file,2048,$separador,$delimitador))!==false){

    
/*formo las cadena para hacer el insert
        ejemplo:
        
        (001,"Carros, Inc. - obo Maersk Line, Inc.",5129706,5129706)
       para despues hacer esto:
       $query = "REPLACE INTO  cat_clientesR(no_centro,empresa,no_cliente,referencia_sistema) VALUES ".$vals."";

       mysql_query($query,$conexion);
    */
    
$vals.="(";
    foreach(
$data as $row){

          
$vals.=$row;
          
$vals.=",";
   }

   
$vals substr($vals,0,-1);
   
$vals.="),";

Cita:
El resultado de el codigo anterior para la primer fila seria esto:
primer campo --->582,
segundo campo-->"Tangoe,
tercer campo--> Inc. - obo Maersk Line,
cuarto campo-->Inc.",
etc....5129706,
etc....5129706,

obiamente el resultado esta mal y deberia de quedar asi:
primer campo --->582,
segundo campo-->"Tangoe,Inc. - obo Maersk Line, Inc.",
tercer campo--> 5129706,
cuarto campo-->5129706,
etc....
alguien puede ayudarme a hacer eso? o es imposible?

de antemano gracias y espero sus respuestas.