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 !