Advertisement
marongiuchristian93

[PHP] 1 - Numeri Pari e Dispari da un File

Apr 9th, 2012
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 5.18 KB | None | 0 0
  1. <html>
  2. <head>
  3. <title>Numeri Pari/Dispari da file</title>
  4. </head>
  5. <body>
  6.  
  7. <?php
  8.  
  9. /*
  10. ##################################################################
  11. ## SCRIPT BY:       Christian Marongiu          ##
  12. ## INFO:        http://chrmar.altervista.org        ##
  13. ## CONTACT:     christianmarongiu93@gmail.com       ##
  14. ##                              ##
  15. ## Pagina HTML/PHP per prelevare i numeri da un file e      ##
  16. ## dividerli in pari e dispari                  ##
  17. ##################################################################
  18. */
  19.  
  20. // 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
  21. // Apro il file numeri.txt
  22. $fileID = fopen("files/numeri.txt","r");
  23. // Se il file non esiste interrompo lo script
  24. if(!$fileID) die ("File non trovato!");
  25.  
  26. $stringa = ""; // Inizializzo la stringa
  27.  
  28. echo "<b>Numeri:</b><br>";
  29.  
  30. /*
  31. Metodo per stampare i numeri utilizzando fgetc
  32. */
  33.  
  34. // Finche' il file non viene terminato da fgetc
  35. while(!feof($fileID)) {
  36.         $char = fgetc($fileID); // Prendo un carattere
  37.         if($char != ",") { // Se questo carattere non e' una virgola
  38.                 $stringa = $char; // Lo aggiungo alla stringa
  39.                 echo $stringa; // Stampo il carattere          
  40.         }
  41.         else { // Se il carattere e' una virgola
  42.                 echo "<br>"; // Vado a capo
  43.                 $stringa = "";  // Svuoto la stringa per ricominciare
  44.         }      
  45. }
  46. // Ora ho stampato a video tutti i numeri contenuti nel file numeri.txt
  47. fclose($fileID); // Chiudo il file numeri.txt
  48.  
  49. // Per trovare quali e quanti sono i numeri pari e dispari
  50. // Riapro il file perche' non posso usare feof e fread insieme, vanno in conflitto
  51. $fileID = fopen("files/numeri.txt","r");
  52. // Se il file non esiste interrompo lo script
  53. if(!$fileID) die ("File non trovato!");
  54.  
  55. $numero = ""; // Inizializzo la variabile numero
  56. $pari[] = ""; // Inizializzo l'array dei numeri pari
  57. $dispari[] = ""; // Inizializzo l'array dei numeri dispari
  58.  
  59. $filesize = filesize('files/numeri.txt'); // rilevo la grandezza del file
  60. $str = fread($fileID, $filesize); // Attribuisco a una stringa tutto il contenuto del file
  61. // Divido in un array gli elementi (i numeri), in base alla divisione imposta dalla virgola
  62. $arr = explode(",",$str,-1);
  63.  
  64. // Creo un ciclo per scorrere l'array di numeri e poterli poi dividere in pari e dispari
  65. for($i=0;$i<sizeof($arr);$i++) {
  66.         // assegno alla variabile numero il numero corrente (dato dall'indice $i)      
  67.         $numero = $arr[$i];    
  68.         if($numero % 2 == 0) {
  69.         // Se il numero diviso per 2 non da' resto significa che e' pari
  70.                 array_push($pari, $numero); // quindi lo aggiungo all'array dei numeri pari
  71.         }
  72.         else {
  73.         // Altrimenti se il numero diviso per due da' resto significa che e' dispari
  74.                 array_push($dispari, $numero); // e lo aggiungo all'array dei numeri dispari
  75.         }
  76. }
  77.  
  78. // Rilevo la grandezza dell'array e tolgo 1 a causa dell'ultima virgola
  79. $sizeP = sizeof($pari) - 1;
  80. // Stampo i numeri pari (con totale di quanti sono)            
  81. echo "<br><br>Numeri <b>PARI:</b> (Totale: <i>" . $sizeP . "</i>)";
  82. for($i=0;$i<sizeof($pari);$i++) {
  83.         /*
  84.         sizeof indica la grandezza dell'
  85.         elemento racchiuso tra parentesi
  86.         in questo caso l'array $pari
  87.         */
  88.         echo $pari[$i] . "<br>"; // Stampo il numero corrente in base ad $i
  89. }
  90.  
  91. // Stampo i numeri dispari (con totale di quanti sono)
  92. // Rilevo la grandezza dell'array e tolgo 1 a causa dell'ultima virgola
  93. $sizeD = sizeof($dispari) - 1;
  94. echo "<br>Numeri <b>DISPARI:</b> (Totale: <i>" . $sizeD . "</i>)";
  95. for($i=0;$i<sizeof($dispari);$i++) {
  96.         /*
  97.         sizeof indica la grandezza dell'
  98.         elemento racchiuso tra parentesi
  99.         in questo caso l'array $dispari
  100.         */
  101.         echo $dispari[$i] . "<br>"; // Stampo il numero corrente in base ad $i
  102. }
  103. fclose($fileID); // Chiudo il file
  104.  
  105. /********************************************************************
  106. ********        ESEMPIO DI STAMPA NUMERI REALIZZATO CON         *****  
  107. ********        EXPLODE, IPOTIZZANDO CHE ANCHE L'ULTIMO         *****          
  108. ********        NUMERO CONTENUTO NEL FILE, DOPO DI              *****  
  109. ********        ESSO ABBIA UNA VIRGOLA                          *****          
  110. ********************************************************************/
  111.  
  112. echo "<br><hr /><br>
  113. <b>Esempio di Lista Numeri realizzato con <i>EXPLODE</i> anziche' usando FGETC</b>:<br>";
  114.  
  115. $fileID = fopen("files/numeri.txt","r"); // Apro il file numeri in modalita' lettura
  116. $str = fread($fileID, $filesize); // Attribuisco a una stringa tutto il contenuto del file
  117. // Divido in un array gli elementi (i numeri), in base alla divisione imposta dalla virgola
  118. $arr = explode(",",$str,-1);
  119.  
  120. // Ciclo per scorrere l'array contenente i numeri letti dal file
  121. for($i=0;$i<sizeof($arr);$i++) {
  122.         // sizeof indica la grandezza dell'elemento racchiuso tra parentesi
  123.         // in questo caso l'array $arr che contiene tutti i numeri scritti nel file
  124.         echo $arr[$i] . "<br>"; // Stampo il numero corrente in base all'indice $i
  125. }
  126. fclose($fileID); // Chiudo il file numeri.txt
  127.  
  128. ?>
  129.  
  130. </body>
  131. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement