Ver Mensaje Individual
  #7 (permalink)  
Antiguo 27/08/2010, 11:10
Nicolazo
 
Fecha de Ingreso: agosto-2010
Mensajes: 3
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: cortar cadenas php

si no te sirve el formato de valores separados por coma, puedes usar expresiones regulares. Eso si, el formato debe ser igual.
Para el caso que pusiste, una linea del CSV tendria este formato:

Cita:
001,"Carros, Inc. - obo Maersk Line, Inc.",5129706,5129706
por lo tanto, una expresion regular que tome la informacion requerida seria:

Cita:
^(\d+),"([^"]+)",(\d+),(\d+)$
por lo tanto tu codigo php lo cambiaria a lo siguiente:


Código PHP:
$file fopen ($ruta"r"); //abro el archivo 
$preg_pattern '/^(\d+),"([^"]+)",(\d+),(\d+)$/';


// recorro los datos                            
while( $data fgets($file,2048) ){ 

    
/*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); 
    */ 
    
    
    
if( preg_match$preg_pattern trim($data) , $matches ) ){
        
$no_centro $matches[1];
        
$empresa $matches[2];
        
$no_cliente $matches[3];
        
$referencia_sistema $matches[4];
    
        
$sql_query "REPLACE INTO cat_clientes (no_centro,empresa,no_cliente,referencia_sistema) VALUES($no_centro,'$empresa',$no_cliente,$referencia_sistema)";
    
        
mysql_query($sql_query,$conexion);     
    }else{
        
// echo "Error en linea: '$data'<br>";
    
}



espero te sirva !