Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <html>
- <head>
- <title>Numeri Pari/Dispari da file</title>
- </head>
- <body>
- <?php
- /*
- ##################################################################
- ## SCRIPT BY: Christian Marongiu ##
- ## INFO: http://chrmar.altervista.org ##
- ## CONTACT: christianmarongiu93@gmail.com ##
- ## ##
- ## Pagina HTML/PHP per prelevare i numeri da un file e ##
- ## dividerli in pari e dispari ##
- ##################################################################
- */
- // Ipotizzando che i numeri nel file numeri.txt siano divisi da una virgola, dove anche l'ultimo numero scritto ha una virgola dopo di esso
- // Apro il file numeri.txt
- $fileID = fopen("files/numeri.txt","r");
- // Se il file non esiste interrompo lo script
- if(!$fileID) die ("File non trovato!");
- $stringa = ""; // Inizializzo la stringa
- echo "<b>Numeri:</b><br>";
- /*
- Metodo per stampare i numeri utilizzando fgetc
- */
- // Finche' il file non viene terminato da fgetc
- while(!feof($fileID)) {
- $char = fgetc($fileID); // Prendo un carattere
- if($char != ",") { // Se questo carattere non e' una virgola
- $stringa = $char; // Lo aggiungo alla stringa
- echo $stringa; // Stampo il carattere
- }
- else { // Se il carattere e' una virgola
- echo "<br>"; // Vado a capo
- $stringa = ""; // Svuoto la stringa per ricominciare
- }
- }
- // Ora ho stampato a video tutti i numeri contenuti nel file numeri.txt
- fclose($fileID); // Chiudo il file numeri.txt
- // Per trovare quali e quanti sono i numeri pari e dispari
- // Riapro il file perche' non posso usare feof e fread insieme, vanno in conflitto
- $fileID = fopen("files/numeri.txt","r");
- // Se il file non esiste interrompo lo script
- if(!$fileID) die ("File non trovato!");
- $numero = ""; // Inizializzo la variabile numero
- $pari[] = ""; // Inizializzo l'array dei numeri pari
- $dispari[] = ""; // Inizializzo l'array dei numeri dispari
- $filesize = filesize('files/numeri.txt'); // rilevo la grandezza del file
- $str = fread($fileID, $filesize); // Attribuisco a una stringa tutto il contenuto del file
- // Divido in un array gli elementi (i numeri), in base alla divisione imposta dalla virgola
- $arr = explode(",",$str,-1);
- // Creo un ciclo per scorrere l'array di numeri e poterli poi dividere in pari e dispari
- for($i=0;$i<sizeof($arr);$i++) {
- // assegno alla variabile numero il numero corrente (dato dall'indice $i)
- $numero = $arr[$i];
- if($numero % 2 == 0) {
- // Se il numero diviso per 2 non da' resto significa che e' pari
- array_push($pari, $numero); // quindi lo aggiungo all'array dei numeri pari
- }
- else {
- // Altrimenti se il numero diviso per due da' resto significa che e' dispari
- array_push($dispari, $numero); // e lo aggiungo all'array dei numeri dispari
- }
- }
- // Rilevo la grandezza dell'array e tolgo 1 a causa dell'ultima virgola
- $sizeP = sizeof($pari) - 1;
- // Stampo i numeri pari (con totale di quanti sono)
- echo "<br><br>Numeri <b>PARI:</b> (Totale: <i>" . $sizeP . "</i>)";
- for($i=0;$i<sizeof($pari);$i++) {
- /*
- sizeof indica la grandezza dell'
- elemento racchiuso tra parentesi
- in questo caso l'array $pari
- */
- echo $pari[$i] . "<br>"; // Stampo il numero corrente in base ad $i
- }
- // Stampo i numeri dispari (con totale di quanti sono)
- // Rilevo la grandezza dell'array e tolgo 1 a causa dell'ultima virgola
- $sizeD = sizeof($dispari) - 1;
- echo "<br>Numeri <b>DISPARI:</b> (Totale: <i>" . $sizeD . "</i>)";
- for($i=0;$i<sizeof($dispari);$i++) {
- /*
- sizeof indica la grandezza dell'
- elemento racchiuso tra parentesi
- in questo caso l'array $dispari
- */
- echo $dispari[$i] . "<br>"; // Stampo il numero corrente in base ad $i
- }
- fclose($fileID); // Chiudo il file
- /********************************************************************
- ******** ESEMPIO DI STAMPA NUMERI REALIZZATO CON *****
- ******** EXPLODE, IPOTIZZANDO CHE ANCHE L'ULTIMO *****
- ******** NUMERO CONTENUTO NEL FILE, DOPO DI *****
- ******** ESSO ABBIA UNA VIRGOLA *****
- ********************************************************************/
- echo "<br><hr /><br>
- <b>Esempio di Lista Numeri realizzato con <i>EXPLODE</i> anziche' usando FGETC</b>:<br>";
- $fileID = fopen("files/numeri.txt","r"); // Apro il file numeri in modalita' lettura
- $str = fread($fileID, $filesize); // Attribuisco a una stringa tutto il contenuto del file
- // Divido in un array gli elementi (i numeri), in base alla divisione imposta dalla virgola
- $arr = explode(",",$str,-1);
- // Ciclo per scorrere l'array contenente i numeri letti dal file
- for($i=0;$i<sizeof($arr);$i++) {
- // sizeof indica la grandezza dell'elemento racchiuso tra parentesi
- // in questo caso l'array $arr che contiene tutti i numeri scritti nel file
- echo $arr[$i] . "<br>"; // Stampo il numero corrente in base all'indice $i
- }
- fclose($fileID); // Chiudo il file numeri.txt
- ?>
- </body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement