Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak przekazać zmienną jako klucz tablicy
Forum PHP.pl > Forum > PHP
marcwars
Nie działa mi taki skrypt:

skrypt.php
  1. <?php
  2. $zmienna = $var;
  3. echo $var; // pokazuje napis "Biedronki są w kropki"
  4. include '2plik.php';
  5. if (isset($tablica[$var])
  6. {
  7. print $tablica[$var]; //nie wyświetla napisu z pliku 2plik.php (Ela ma kota)
  8. }
  9. else
  10. print $inna_zmienna; //tą zmienną wyświetla
  11. ?>


2plik.php
  1. <?php
  2. $tablica ["Biedronki są w kropki"] = "Ela ma kota";
  3. ?>


I mam problem, bo napis się pokazuje (Biedronki są w kropki) a napisu jako klucza do tablicy nie mogę przekazać, pytanie dlaczego?
Co więcej zmienną $var mogę wywołać wszędzie dalej w pliku tak samo? Więc nie jest to kwestia globalizacji zmiennej....

Będę wdzięczny za wsparcie.
cycofiasz
Widocznie pliki mają różne kodowanie.
marcwars
Na rozwiązanie już sam wpadłem, ale wciąż nie mam pojęcia czy to związane z kodowaniem zmiennych, raczej chyba nie (niepewnym, bom nie fachowiec, dopiero się uczę) obie zmienne są typu string i specjalnie użyłem bez polskich znaków.
Tak naprawdę był to fragment większego pliku (z innego postu: http://forum.php.pl/index.php?showtopic=189561&hl=), który postanowiłem uprościć, aby był bardziej czytelny.

W istocie wyłapanie zmiennej z tablicy zadziałało, kiedy zamiast zmiennej $var, dałem jej źródło, czyli zmienną $_GET['x'].
Część kodu, której nie podałem wyglądała tak:
  1. if ($_GET['x']==true){
  2. foreach($strony -> element as $element){
  3. $nazwa_no = remove_pl($element -> nazwa, utf8);
  4. $nazwa_no = str_replace(' ', '-', $nazwa_no);
  5. $nazwa_no = str_replace('.', '', $nazwa_no);
  6. if($_GET['x']==$nazwa_no){
  7. $title .=$oddziel.$element -> title;
  8. $zdj=$element -> zdj;
  9. $strona=$element -> str;
  10. $nazwa=$element -> nazwa;
  11. }else{
  12. foreach($element -> el1 as $el1){
  13. $nazwa_no_el1 = remove_pl($el1 -> nazwa, utf8);
  14. $nazwa_no_el1 = str_replace(' ', '-', $nazwa_no_el1);
  15. $nazwa_no_el1 = str_replace('.', '', $nazwa_no_el1);
  16. if($_GET['str']==$nazwa_no_el1){
  17. $title .=$oddziel.$el1 -> title;
  18. $zdj=$el1 -> zdj;
  19. $strona=$el1 -> str;
  20. $nazwa=$el1 -> nazwa;
  21. include ('2plik.php');
  22. echo $tablica[($_GET['x'])];
  23. .......
  24.  


Natomiast 2plik.php wygląda następująco:

  1. <?php
  2. $tabklucz = array(
  3. 'coś tam coś tam' => 'abc abc'
  4. )
  5. ?>


Dla wyjaśnienia dodam, że funkcja remove_pl po prostu zmienia polskie znaki na łacińskie.

Dziękuję za odpowiedź, bo cycofiasz jesteś jedynym odważnym, chociaż wiele osób przeglądało oba posty.

12 godzin ślęczenia:(
Temat można uznać za zamknięty 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.