Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Tablice
Forum PHP.pl > Forum > PHP
Gibcio2008
Witam !
Borykam się z problemem tablic, a mianowicie:

PIERWSZY PLIK: config.php i jego zawartość
  1. <?php
  2. $config['a'] = 'a';
  3. ?>


DRUGI PLIK: db.php i jego zawartość
  1. <?php
  2. $db['a'] = 'a';
  3. ?>


Dołączanie jest proste:

  1. <?php
  2. function Load($file_name)
  3. {
  4. if(file_exists('config/'.$file_name.'.php'))
  5. {
  6. include 'config/'.$file_name.'.php';
  7. }
  8. }
  9. ?>


teraz chciałbym wyświetlić z pliku config.php lub z pliku db.php a ale nie znając nazwy tablicy ?
nospor
Pliki includowane moga zwracac wartosci, podobnie jak funkcje przez return

Przyklad #5
http://php.net/manual/pl/function.include.php
Gibcio2008
Wszystko w porządku jeśli wiemy, że
  1. <?php
  2. echo $config['a'];
  3. ?>


wyświetli "a"

ale jak wyświetlić tą wartość a jeśli nie znamy nazwy tablicy ?
nospor
No przeciez ci podalem rozwiazanie w moim pierwszym poscie. Zastosowales? Jesli nadal twierdzisz ze nie dziala to pokaz kod po zmianach
Gibcio2008
Plik config.php
  1. <?php
  2. $config['a'] = "A";
  3. ?>


Plik db.php
  1. <?php
  2. $data['a'] = "A";
  3. ?>


Funkcja która inluduje plik:
  1. <?php
  2. function Load($filename) {
  3. if(file_exists($filename)) {
  4. include($filename);
  5. }
  6. else {
  7. echo 'brak pliku';
  8. }
  9. }
  10. ?>


  1. <?php
  2. Load('config.php');
  3. Load('db.php');
  4. ?>



Poniższe zestawienie zadziała
  1. <?php
  2. echo $config['a']; wyświeli się a
  3. echo $db['a']; to się nie wykona bo nie ma takiej zmiennej jak $db
  4. ?>


chodzi mi o to żeby nie znając nazwy tablicy, bo może być inna

nospor
Podalem ci rozwiazanie w moim pierwszym poscie. Dopoki nie raczysz sie do niego zastosowac to nie pisz wiecej. Oszczedz sobie czasu a mi zdrowia
Gibcio2008
Zastosowałem coś takiego
  1. <?php
  2. function Load($filename)
  3. {
  4. include $filename;
  5. return ob_get_clean();
  6. }
  7.  
  8. $a = Load('config.php');
  9. $b = Load('db.php');
  10.  
  11. print_r($a); - pusto
  12. echo $a; - pusto
  13.  
  14. ?>

i nic się nie dzieje
nospor
Kurcze.... przeciez wyraznie napisalem PRZYKLAD NR 5!
Gibcio2008
Aaaaa to wybacz nie zauważyłem tej 5


  1. <?php
  2. $config['a'] = 'A';
  3. return $config;
  4. ?>


  1. <?php
  2. $db['a'] = 'A';
  3. return $db;
  4. ?>


  1. <?php
  2. function Load($filename)
  3. {
  4. include $filename;
  5. }
  6.  
  7. $a = Load('config.php');
  8. $b = Load('db.php');
  9.  
  10. echo $a['a'];
  11. ?>


Teraz działa, ale jest jeszcze jedno ale, jak użytkownik stworzy plik konfiguracyjny i nie wklepie return'a, to już nie zadziała
nospor
Cytat
to już nie zadziała

A jak user da w tam

die('Blabla');

to tez dzialac nie bedzie.

Moze wez napisz co ty tam cudujesz bo znakac zycie totalnie zle do tego podchodzisz. Skoro mowisz juz o rzeczach ktore jakis user ma wprowadzac...
Gibcio2008
Próbuje a raczej staram się napisać własny MVC smile.gif, a mnie jakieś korzystanie z cudzego nie interesuje, mam nawet książke "Programowanie obietkowe w PHP5" i stanąłem właśnie na tych configach
nospor
A co ma wlasne MVC do faktu ze jakis user bedzie pisal wlasny config?

A nawet jesli zamierzasz to udostepniac i inni maja z tego korzytac to sorki, jak ktos spieprzy bo nie przeczytal twojej dokumetnacji to jego wina a nie twoja. Nie po to symfony pisze doc by na slepo walic literki w kodzie
Gibcio2008
No w sumie to racja, jeszcze się z tym prześpię, na dzisiaj dam sobie spokuj
viking
Spokój.
Zobacz sobie np pakiet zend-config jak to jest zrobione. I poza tym książka php5 jest już dawno przestarzała.
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.