ciclo for per leggere da file

salve a tutti!

ho un file php. devo leggere un file di testo e trasformare ogni riga del file di testo in una stringa nel file php.

per fare ciò ho fatto questo codice che funziona

$varfile = @file("./file.txt");
$num_var = count($varfile);
   
for ($num1 = 0 ; $num1 < $num_var; $num1++) {

      $dati[$num1] = explode(",", $varfile[$num1]);
   }

for ($num1 = 0 ; $num1 < $num_var ; $num1++) {

         $dati = $dati[$num1];

         $a = stripslashes($dati[0]);
         $b = $dati[1];
         $c = stripslashes($dati[2]);
         $d = $dati[3];
         $e = $dati[4];            


   echo "

   <tr>
      <td class='style1'>$b</td>
      <td class='style1'>$c</td>
      <td class='style1'>$d</td>
      <td class='style1'>$e</td>
   </tr>";
}
echo '</table>';

il problme che è sorto è il seguente: io vorrei estrarre da file txt solo quelle righe dove la variabile a corrisponda a un'altra variaibile. in pratica vorrei effettuare un confronto e se $a = $varconfronto allora leggere e inserire tra le variabile da visualizzare nella pagina quella riga, altrimenti saltarla.

sapete com'è possibile farlo?

grazie!

inviato 6 anni fa
sinistro
X 0 X

Metti un if. tipo così:

$varfile = @file("./file.txt");
$num_var = count($varfile);
   
for ($num1 = 0 ; $num1 < $num_var; $num1++) {

      $dati[$num1] = explode(",", $varfile[$num1]);
   }

for ($num1 = 0 ; $num1 < $num_var ; $num1++) {

         $dati = $dati[$num1];

         $a = stripslashes($dati[0]);
         if($a == $varconfronto ){
            $b = $dati[1];
            $c = stripslashes($dati[2]);
            $d = $dati[3];
            $e = $dati[4];            

             echo "
               <tr> 
                  <td class='style1'>$b</td>
                  <td class='style1'>$c</td>
                    <td class='style1'>$d</td>
                  <td class='style1'>$e</td>
               </tr>";
         }

}
echo '</table>';
risposto 6 anni fa
Mario Santagiuliana
X 0 X

ok grazie mille, è perfetto!

risposto 6 anni fa
sinistro
X 0 X

sarebbe poi possibile assegnare una variabile diversa a ogni caratteristica di ogni riga diversa?

esempio chiamare b1 la seconda caratteristica della prima riga

                              b2 la seconda della seconda riga

e cosi via...

fare in modo che non si chiamino tutte b per poterle richiamare in seguito singolarmente anche fuori da un ciclo for

risposto 6 anni fa
sinistro
X 0 X

Fai diventare b un array.

risposto 6 anni fa
Mario Santagiuliana
X 0 X

$b = $dati[1];

e come lo trasformo? e poi per richiamare ognuno?

$B[] = array ($b)

$B[1] mi darà il primo e cosi via?
risposto 6 anni fa
sinistro
X 0 X

Esattamente!!!  ;)

risposto 6 anni fa
Mario Santagiuliana
X 0 X
$varfile = @file("./file.txt");
$num_var = count($varfile);
   
for ($num1 = 0 ; $num1 < $num_var; $num1++) {

      $dati[$num1] = explode(",", $varfile[$num1]);
   }

for ($num1 = 0 ; $num1 < $num_var ; $num1++) {

         $dati = $dati[$num1];

         $a = stripslashes($dati[0]);
         if($a == $varconfronto ){
            $b = $dati[1];
            $c = stripslashes($dati[2]);
            $d = $dati[3];
            $e = $dati[4]; 
           $ B = array($b);

             echo "
               <tr> 
                  <td class='style1'>$b</td>
                  <td class='style1'>$c</td>
                    <td class='style1'>$d</td>
                  <td class='style1'>$e</td>
               </tr>";
         }

}
echo '</table>';
echo ' $b[0], $b[1]';

   ?>
         <form name='form' method='post' action=''>
        <p>   <label class='style2'>testo1:&nbsp<select name='testo1'>
         <option value='0'> </option>
               <option value='1'></option>
               <option value='2'></option>
               </select></label></p>
      <p><input name='invia' type='submit' value='Invia' /></p></form>
   <?php

non mi legge l'array con i dati di b in questo modo...

e poi una volta letti vorrei visualizzarli singolarmente nel form in corrispondenza delle varie opzioni.... come devo sistemare il codice?

risposto 6 anni fa
sinistro
X 0 X

Questo:

         if($a == $varconfronto ){
            $b = $dati[1];
            $c = stripslashes($dati[2]);
            $d = $dati[3];
            $e = $dati[4]; 
           $ B = array($b);

Circa così:

         $b = array();
         if($a == $varconfronto ){
            $b[] = $dati[1];
            $c = stripslashes($dati[2]);
            $d = $dati[3];
            $e = $dati[4];

Contestualmente dovrai modificare la visualizzazione di $b.

risposto 6 anni fa
Mario Santagiuliana
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda