Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: niebanalna zamiana IF na SWITCH
Forum PHP.pl > Forum > Przedszkole
hispano
Mogłoby się wydawać że zamiana kilku funkcji IF wręcz identycznych w jedną SWITCH to banał.
Utknąłem i się już przegrzewam. Pomocy.

Dla każdej lini pliku $linie, która zawiera unikalny ciąg sprawdzam czy zawiera $tekst
Jeżeli zawiera to cośtam robi.
  1. <?php
  2.  
  3. if (!strstr($linie[$i],$tekst) === false)
  4. { coś tam robi }
  5.  
  6. ?>

Jako to rozłożyć dla różnych wartości $tekst, żeby to poszło na SWITCH.

Ze SWITCHem to będzie szybciej działało i estetyczniej (czytelniej wyglądało)
byther
A nie lepiej, gdy wykorzystasz preg_match_all() z przełącznikiem 'e'? Przetwarzanie "linijka-po-linijce" jest nieefektywne, przynajmniej w php.
Paul
Jesli dobrze rozumiem chodzi o cos takiego:
Kod
jakis tekst
szukany tekst
inny tekst, drugi tekst
jeszcze inny tekst

  1. <?php
  2. $tekst = array('szukany tekst', 'drugi tekst'); 
  3. $plik = file('twoj_plik.txt');
  4.  
  5. for($i=0; $i < count($plik); $i++) {
  6. for($i2=0; $i2 < count($tekst); $i2++) {
  7.  if(strpos($plik[$i], $tekst[$i2]) !== false) {
  8. echo 'linia numer '. ($i + 1) .' zawiera \"'. $tekst[$i2] .'\"<br>';
  9.  }
  10. }
  11. }
  12. ?>


PS. & #33; to !
hispano
  1. <?php
  2.  
  3. $i=0;
  4. while (strstr($lines[$i],'koniec') === false)
  5.  {
  6. if (!strstr($lines[$i],'ala') === false)
  7.  {  
  8.  print&#092;"Ala ma $zmiennaZliniiGdzieAlan\";
  9.  }
  10. if (!strstr($lines[$i],'ola') === false)
  11.  {  
  12.  print&#092;"Ola robi $zmiennaZliniiGdzieOlan\";
  13.  }
  14.  $i++;
  15. }
  16.  
  17. ?>


to chcę zamienić na

  1. <?php
  2.  
  3. while (strstr($lines[$i],'koniec') === false)
  4.  {
  5.  switch ($imie){
  6.  case 'ala' : print&#092;"Ala ma $zmiennaZliniiGdzieAlan\"; break;
  7.  case 'ola' : print&#092;"Ola robi $zmiennaZliniiGdzieOlan\"; break;
  8.  }
  9.  }
  10.  
  11. ?>


i męczę się z warunkiem dla SWITCH
sf
Nie uzywaj switch poniewaz jest to bezsensowne w tym momencie... lepiej zrobic tak jak Ci pokazali koledzy wyzej, uzywajac petli.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.