Ver Mensaje Individual
  #7 (permalink)  
Antiguo 27/08/2010, 11:10
Nicolazo
 
Fecha de Ingreso: agosto-2010
Mensajes: 3
Antigüedad: 16 años, 2 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 !