ciao a tutti , mi presento con un problema di righe nel file.
io possiedo un file con n righe.
Queste righe potranno essere modificate tramite web da un apposito form.
io ho utilizzato un sistema di sovresdcrittura del file o meglio quando trovo la riga interessata la sostituisco con i valori nel form, mentre le altre le lascio stare cosi come sono.
Dopo di che salvo tutto il file e lo sovrascrivo riga per riga..
il problema e che non va a capo ad ogni fine riga, con \r\n va a capo di 2 o 3 spazi ad ogni modifica. sinceramente non so più come fare!
vi posto il codice per una miglio lettura
Codice PHP:
foreach ($righe_file as $righe ){//ciclo il file
$a++;//incremento il contatore per sapere quanti cicli si sono effettuati
$explo = explode (";",$righe);//esplodo le linee del file una alla volta
if ($cambio[2] == $explo[2]){//verifico se nel punto preciso esiste l'uguaglianza
$data[$a] = implode (";" , $cambio);//includo in data l'implosione della modifica
}else{
$data[$a] = implode (";" , $explo);//includo l'implosione dei vecchi valori
}
}//chiuso il ciclo foreach
$conto = 0 ;//valorizzo una variabile contatore
$errorescrittura = 0 ;//creo un contatore per gli errori di scrittura
foreach ($data as $da){//ciclo data per tutta la sua lunghezza
if ($conto == 0 ){//se è la prima volta che entra nel ciclo
$open_file = fopen($file, "w");//apro il file in modalità scrittura (w punta l'inizio del file)
}else if (($conto != 0 ) && ($conto >= 1)){//se non è la prima scrittura
$open_file = fopen($file, "a");//apro il file in modalità scrittura (a parte dal fondo del file)
}
$conto++;//incremento il contatore
if (trim($da) !== ""){
$vettore = $da."\r\n";//vettore contiene il file pronto
//creo un ciclo per l'array modificato
$scrittura = fwrite($open_file,$vettore);//scrivo il file con i permessi sopra elencati
fclose ($open_file);//chiudo il file
if (!$scrittura){//se una delle scritture è fallita
$errorescrittura++;
}
}
}
$cambio è l'array con tutti i valori presi dal form!
grazie dell'aiuto