Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> niebanalna zamiana IF na SWITCH
hispano
post 3.08.2004, 12:37:01
Post #1





Grupa: Zarejestrowani
Postów: 51
Pomógł: 0
Dołączył: 27.07.2004

Ostrzeżenie: (0%)
-----


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)
Go to the top of the page
+Quote Post
byther
post 3.08.2004, 12:57:27
Post #2





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 15.06.2004
Skąd: Warszawa

Ostrzeżenie: (10%)
X----


A nie lepiej, gdy wykorzystasz preg_match_all() z przełącznikiem 'e'? Przetwarzanie "linijka-po-linijce" jest nieefektywne, przynajmniej w php.


--------------------
Sygnaturka: jest
Go to the top of the page
+Quote Post
Paul
post 3.08.2004, 13:03:05
Post #3





Grupa: Zarejestrowani
Postów: 636
Pomógł: 0
Dołączył: 22.10.2003
Skąd: Katowice

Ostrzeżenie: (0%)
-----


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 !
Go to the top of the page
+Quote Post
hispano
post 3.08.2004, 13:17:11
Post #4





Grupa: Zarejestrowani
Postów: 51
Pomógł: 0
Dołączył: 27.07.2004

Ostrzeżenie: (0%)
-----


  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
Go to the top of the page
+Quote Post
sf
post 6.08.2004, 15:33:25
Post #5





Grupa: Zarejestrowani
Postów: 1 597
Pomógł: 30
Dołączył: 19.02.2003
Skąd: Tychy

Ostrzeżenie: (0%)
-----


Nie uzywaj switch poniewaz jest to bezsensowne w tym momencie... lepiej zrobic tak jak Ci pokazali koledzy wyzej, uzywajac petli.

Ten post edytował sf 6.08.2004, 15:36:35


--------------------
Zapraszam na mój php blog, tworzenie stron.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 7.05.2024 - 10:14