Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Mały problem z pętlą i tablicą :(
Forum PHP.pl > Forum > Przedszkole
Setesh
Witam.

Mam (pewnie wg was) mały problem ze sprawdzeniem czy wartość jest w tablicy. Będę wdzięczny za pomoc bo już nie wiem jak to zrobić sad.gif

Kod :
  1. <?php
  2. function CheckLanguages($Lang)
  3. {
  4. $Languages = array("pl" => "Polski",
  5.                    "en" => "English",
  6.                    "de" => "Deutsch",
  7.                    "ru" => "Russish");
  8.  
  9. for($i=0; $i<$Languages; $i++)
  10.    {
  11.     if($Languages[0][$i] == $Lang)
  12.       {
  13.        $Lang_supported = true;
  14.        echo '<br>Język obsługiwany : "'.$Lang.'"';
  15.        break;
  16.       }else{
  17.             $Lang_supported = false;
  18.            };
  19.    }      
  20. if($Lang_supported == false)  echo '<br>Język NIE obsługiwany : "'.$Lang.'"';
  21. }
  22.  
  23. ?>


wywołanie przez :
  1. <?php
  2. CheckLanguages("pl");
  3. ?>

jakoś źle mi działa sad.gif

Wie ktoś co robię źle ? sad.gif

W dodatku coś mi ten kod zżera procesor sad.gif
phpion
  1. <?php
  2. function CheckLanguages($Lang)
  3. {
  4.    $Languages = array("pl" => "Polski",
  5.                   "en" => "English",
  6.                   "de" => "Deutsch",
  7.                   "ru" => "Russish");
  8.  
  9.    echo isset($Languages[$Lang]) ? 'obslugiwany' : 'nieobslugiwany';
  10. }
  11. ?>

Ja bym się jednak zastanowił nad zwracaniem (return) w funkcji prawdy lub fałszu zamiast wypisywania komunikatu. Wtedy kod wyglądałby tak:
  1. <?php
  2. function CheckLanguages($Lang)
  3. {
  4.    $Languages = array("pl" => "Polski",
  5.                   "en" => "English",
  6.                   "de" => "Deutsch",
  7.                   "ru" => "Russish");
  8.  
  9.    return isset($Languages[$Lang]);
  10. }
  11.  
  12. // i wywolanie funkcji nieco inne niz Twoje
  13. echo CheckLanguages('pl') ? 'obslugiwany' : 'nieobslugiwany';
  14. ?>
Setesh
Dzięki wielkie za pomoc smile.gif

Jestem początkujący a w dodatku rzadko w php coś robię więc wielkie dzięki jeszcze raz smile.gif

Sorki za nowy post ale edytowane rzadko kto czyta (bo nie są wyróżniane a szkoda sad.gif )

idąc ostatnią twoją podpowiedzią chciałem wykonać sprawdzenie ale jakoś mi nie wychodzi - próbowałem na 2 sposoby i nie wiem jak to zrobić sad.gif

kod :
  1. <?php
  2. if($Lang == "")
  3.   {
  4.    $Lang = "pl";
  5.   }else{
  6.         if(CheckLanguages($Lang))
  7.           {
  8.            echo "obsługiwany"; // tu dalsze instrukcje
  9.           }else{
  10.                 echo "nieobsługiwany"; // tu dalsze instrukcje
  11.                };
  12.        };
  13. ?>


lub tak : (co pewnie każdy wyśmieje bo tak się pewnie nie robi)

  1. <?php
  2. if((echo CheckLanguages($Lang) ? 'T' : 'N') == T);
  3.   {
  4.    echo "<br>obsługiwany<br>";
  5.    $Path = 'root/'.$Lang.'/settings.php';
  6.    include($Path);
  7.   }else{
  8.         echo "<br>nieobsługiwany<br>";
  9.         $Path = 'root/pl/settings.php';
  10.         include($Path);
  11.        };
  12. ?>


Ogólnie chciałbym ustawić ścieżkę do pliku konfiguracyjnego wg danego języka a jak takiego nie ma to aby ustawił domyślny czyli polski ale wywala mi błąd sad.gif
lukaszgolder
Tą drugą wersje musisz zrobić tak:
  1. <?php
  2. if(CheckLanguages($Lang)); 
  3.   {
  4.    echo "<br>obsługiwany<br>";
  5.    $Path = 'root/'.$Lang.'/settings.php';
  6.    include($Path);
  7.   }else{
  8.         echo "<br>nieobsługiwany<br>";
  9.         $Path = 'root/pl/settings.php';
  10.         include($Path);
  11.        };
  12. ?>
Setesh
Dzięki WIELKIE smile.gif (tak krzykliwe ale wyraża moje zadowolenie smile.gif )

To chyba wszystko co mi do szczęścia potrzebne przy pisaniu z php aktualnie więc jakby co można będzie pewnie zamknąć temat - no chyba że ktoś jeszcze będzie pisał tu smile.gif

// EDIT :

Ok coś mi nie działa sad.gif
Jakoś nie chce mi zapamiętać wartości w zmiennej $Lang sad.gif

index.php :
  1. <?php
  2. $Lang="de";
  3. echo '<br>0 '.$Lang; // Wyświetla de
  4. include("root/func/php/func_lang.php"); // plik z funkcjami
  5.  
  6. echo '<br>"'.LoadLanguages().'"'; // Tu już nie pamięta zmiennej
  7. ?>


func_lang.php :
  1. <?php
  2. function LoadLanguages()
  3. {
  4. echo '<br>1 '.$Lang; // tu już nie pamięta
  5. //if($Lang == "") $Lang="pl"; // tutaj było jakby język był "pusty" to defaultowy polski i jak to zostawić to działa wszystko ale językiem zawsze jest pl a nie ten co na początku w index.php ustawiłem :(
  6. if(CheckLanguages($Lang))
  7.   {
  8.    echo '<br>2 '.$Lang; // tu nie wiem bo już wcześniej nie pamięta :(
  9.    $Path = 'root/lang/'.$Lang.'/settings.php';
  10.   }
  11. return $Path;
  12. }
  13.      
  14. function CheckLanguages($Lang)
  15. {
  16. echo '<br>3 '.$Lang; // Tu tak samo jak w pkt echo 2 :(
  17. $Languages = array("pl" => "Polski",
  18.                    "en" => "English",
  19.                    "de" => "Deutsch",
  20.                    "ru" => "Russish");
  21.  
  22. return isset($Languages[$Lang]);
  23. }
  24.  
  25. ?>


Wie ktoś co robię źle ?
ayeo
Witam!

W funkcji nie masz przecież tej zmiennej. Poczytaj o zasięgu zmiennych. Zrób tak:
LoadLanguages( $Lang );

Pozdrawiam!
Setesh
Trochę się wkurzyłem i kupiłem knigę o php - wprawdzie z Helionu ale jest fajna smile.gif "PHP 4 od podstaw" Jak dla mnie super smile.gif

ayeo - dzięki za pomoc ale o tym samym już pomyślałem po drodze do domu tylko wydawało mi się trochę takie nieciekawe że jedna zmienna będzie przenoszona z jednej funkcji do następnej ale inaczej nie da się chyba smile.gif

Ok jakby co to jeszcze tu trochę pomęczę o pomoc ale mam nadzieję że nie będę musiał smile.gif

teraz wygląda to tak :

index.php :
  1. <?php
  2. $Lang="zm";
  3. include("root/func/php/func_lang.php");
  4. echo '<br>"'.LoadLanguages($Lang).'"';
  5. ?>


func_lang.php
  1. <?php
  2. function LoadLanguages($Lang)
  3. {
  4. if(!CheckLanguages($Lang))
  5.   {
  6.    $Lang = "pl";
  7.   };
  8. return $Path = 'root/lang/'.$Lang.'/settings.php';
  9. }
  10. //------------------------------------------------------
  11. function CheckLanguages($Lang)
  12. {
  13. $Languages = array("pl" => "Polski",
  14.                    "en" => "English",
  15.                    "de" => "Deutsch",
  16.                    "ru" => "Russkij");
  17. return isset($Languages[$Lang]);
  18. }
  19.  
  20. ?>


I jeszcze jedno pytanie - jak pobrać z tablicy wartości "Polski" "english" itp ?

bo jakoś nie mogę tak :
  1. <?php
  2. $Info = $Languages [0][1];
  3. ?>
sad.gif
bim2
  1. <?php
  2. echo $Languages['pl']; //wyswietli Polski
  3. echo $Languages['en']; //wyswietli English
  4. ?>


EDIT:
Piszesz, że pomogłeś, więc daj punkty pomógł dla Ayo. Przy jego postach jest taki guziczek POMÓGŁ ^^
Setesh
Ogólnie dałem wszystkim POMÓGŁ bo pomogliście mi i to bardzo (każdy na swój sposób a dobry dla mnie smile.gif )
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.