4D e 4E SIA: Copiare il contenuto di un file di testo in un altro (copia di sicurezza file di dati nella registrazione in Php)



Soluzione "Latelliana" per evitare di perdere il contenuto del file di testo nel caso di malfunzionamento elettrico durante la modifica di un record tramite il programma:

<?php
// richiamo il file logico collegato al file fisico
include("setting.php");

/*************************
SCRITTURA
**************************/
if(isset($_POST['scrivi']))
{
if(!is_writable($my_database_txt)){
exit("il file non ha i permessi di scrittura!");
}
// riceviamo i dati e li filtriamo
$bad_char = array("|", "\r\n", "\r", "\n");
$capo = str_replace($bad_char, "", $_POST['capo']);
$taglia = str_replace($bad_char, "", $_POST['taglia']);
$prezzo = str_replace($bad_char, "", $_POST['prezzo']);
    $totale = str_replace($bad_char, "", $_POST['totale']);
    $totale=$prezzo+(($prezzo*22)/100);
// apriamo il file
    // aprire il file in a+ vuol dire che il nuovo recors sara'
    // scritto in accodamento dopo l'ultimo record registrato
    // senza alterare i record precedenti
$open = fopen($my_database_txt, "a+");
// registriamo i dati nei campi, separati dal carattere separatore (|)
fwrite($open, $capo."|".$taglia."|".$prezzo."|".$totale."\r\n");
// chiudiamo il file
fclose($open);

// ritorniamo nella pagina di visualizzazione
header("location: lettura.php");
exit;
}


/*************************
ELIMINARE UNA RIGA - CANCELLAZIONE DEL RECORD
**************************/
else if(isset($_GET['delete']))
{
// creiamo l'array con tutti le righe (i records)
$array_righi = file($my_database_txt);
// eliminiamo dall'array la riga (il record)
unset($array_righi[$_GET['delete']]);
// apriamo il file resettando il contenuto
    // attenzione perche' aprire il file con il parametro "W"
    // e' pericoloso. La registrazione sul disco avverra' senza
    // verificare se il file e' presente, pertanto
    // aprire con "w" cancellerà il file precedente con tutto
    // il contenuto e memorizzera' l'intera tabella dalla RAM
    // dentro il file fisico "prodotto.txt"
 
$open = fopen($my_database_txt, "w");
foreach($array_righi as $key => $value){
// ri-scriviamo tutti i righi (rimanenti)
fwrite($open, $value);
}
fclose($open);
// ritorniamo nella pagina di visualizzazione
header("location: lettura.php");
exit;
}


/************************
MODIFICARE UNA RIGA
*************************/
else if(isset($_POST['modifica']) AND isset($_POST['row_update']))
{
// creiamo l'array con tutte le righe
$array_righi = file($my_database_txt);
// riceviamo i dati e li filtriamo
$bad_char = array("|", "\r\n", "\r", "\n");
$capo = str_replace($bad_char, "", $_POST['capo']);
$taglia = str_replace($bad_char, "", $_POST['taglia']);
$prezzo = str_replace($bad_char, "", $_POST['prezzo']);
    $totale=$prezzo+(($prezzo*22)/100);
// ri-scriviamo il rigo (che sostituirà il precedente)
$array_righi[$_POST['row_update']] = $capo."|".$taglia."|".$prezzo."|".$totale."\r\n";
// apriamo il file resettando il contenuto
$open = fopen($my_database_txt, "w");
foreach($array_righi as $key => $value){
// ri-scriviamo tutte le righe
fwrite($open, $value);
}
fclose($open);
// ritorniamo nella pagina di visualizzazione
header("location: lettura.php");
exit;
}
?>

Soluzione "Latelliana" 
Salvare il file di testo prodotti.txt in backup_prodotti.txt
(copiando il contenuto nel secondo file)

Setting.php

<?php
$my_database_txt = 'prodotti.txt';
$originale = 'prodotti.txt';
$copia = 'backup_prodotti.txt';
copy($originale,$copia);
?>

Contenuto del file prodotti.txt

Jeans|L|100|122
Maglione|XL|150|183Calzini|44|10|12.2
Maglione|XXL|100|122
Giacca|XL|50|61
Giacca|XXL|200|244
Calze|XL|20|24.4
Sciarpa|L|50|61

Contenuto del file backup_prodotti.txt

Jeans|L|100|122
Maglione|XL|150|183Calzini|44|10|12.2
Maglione|XXL|100|122
Giacca|XL|50|61
Giacca|XXL|200|244
Calze|XL|20|24.4
Sciarpa|L|50|61

Commenti

Post popolari in questo blog

Simulazioni di reti (con Cisco Packet Tracer)

Esercizi sulla rappresentazione della virgola mobile IEEE 754 (Floating Point)