Ver Mensaje Individual
  #6 (permalink)  
Antiguo 16/06/2015, 08:40
matake
 
Fecha de Ingreso: mayo-2013
Mensajes: 191
Antigüedad: 11 años, 6 meses
Puntos: 10
Respuesta: Loop con array

En este caso has cambiado tu pregunta inicial.
Ahora dices que te interesa el numero de veces que coincide dicho patron en tu array

De todos modos era mal escrito
Esto deberia funcionar:
Código PHP:
Ver original
  1. while (!feof($handle)) {   
  2.     $input = fgets($handle);
  3.     $directory = explode ('"',$input);
  4.     print_r  ($directory);
  5.     $article = 0;
  6.     for($i=0;$i < count ($directory);$i++){
  7.     if($directory[$i] === "GET articles/learn_PHP_basics HTTP/1.0"){
  8.             $article++;
  9.         }
  10.     }
  11.     echo "<p>Total number of file requests from the articles directory: $article</p>";
  12. }

o la version mas corta como dijo ArturoGallegos seria esto

Código PHP:
Ver original
  1. while (!feof($handle)) {
  2.    
  3.     $input = fgets($handle);
  4.     $directory = explode ('"',$input);
  5.     print_r  ($directory);
  6.     $article = 0;
  7.     $article = count(preg_grep( "GET articles/learn_PHP_basics HTTP/1.0",$directory ));
  8.     echo "<p>Total number of file requests from the articles directory: $article</p>";
  9. }

No entiendo porque pusiste manualmente el
Código PHP:
Ver original
  1. $input = '103.239.234.105 -- [2007-04-01 00:42:21] "GET articles/learn_PHP_basics HTTP/1.0" 200 12729 "Mozilla/4.0"';

cuando $input se supone que debe ser una linea leida de tu fichero con while por esto puse el fgets()
pero en este caso ni siquiera deberias hacerlo array con el explode y simplemente hacer
Código PHP:
Ver original
  1. while (!feof($handle)) {
  2.     $input = fgets($handle);
  3.     $article = preg_match_all("GET articles/learn_PHP_basics HTTP/1.0",$input);
  4.     echo "<p>Total number of file requests from the articles directory: $article</p>";
  5. }

Pero todo de mas arriba te va a dar el Total de coincidencias en esta linea leida
Si lo que quieres es el total de todo el fichero es otra cosa

Última edición por matake; 16/06/2015 a las 09:03