Bueno, no hace falta reemplazar, tu funcion de lectura seria desde la segunda linea, no se necesitan los nombres de las columnas, y como separador de campo la ",", algo asi quedaria:
Código PHP:
$fp = fopen('temp/'.$nombre_temporal);
// LEER LA PRIMERA LINEA
$linea = fgetcsv($fp,1000,',');
$tmpSQL = array();
// COMENZAMOS DESDE LA SEGUNDA EN ADELANTE
while(($linea = fgetcsv($fp,1000,','))!==FALSE){
if($linea[0]!='' && $linea[1]!=''){
$tmpSQL[] = "('".$linea[0]."','".$linea[1]."')";
}
}
fclose($fp);
if(count($tmpSQL)>0){
$SQL = "INSERT INTO personas(nom,dni) VALUES".implode(',',$tmpSQL);
die($SQL); // PUSE ESTE DIE, PARA VERIFICAR SI ESTA BIEN LA CONSULTA SQL
}
asi te imprimiria en pantalla la sentencia SQL resultante, si algo esta mal formado o concatenado, la consulta fallará.
Ten en cuenta, quien usara esto, ya que como viste, el Excel guarda de una forma el formato CSV, otros programas lo hacen de forma diferente y ahi te vas a encontrar con problemas.
Saludos.