Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Przetwarzanie wielowymarowych tablic
Forum PHP.pl > Forum > Przedszkole
marcio
Witam mam takie 2 funkcje:
  1. <?php
  2. function listFiles($dir) {
  3.  
  4. $files = array();
  5.  
  6.   if($uchwyt = opendir($dir)) {
  7.  
  8.       while($file = readdir($uchwyt)) {
  9.  
  10.           if(is_file($dir.$file) && $file != '.' && $file != '..') $files[] = $dir.$file;
  11.            
  12.       }
  13.       closedir($uchwyt);
  14.   }
  15. return $files;
  16. }
  17.  
  18. function load_info_modules($dir) {
  19.  
  20. $info = array();
  21. $files = listFiles($dir);
  22. $y = 0;
  23.  
  24. foreach($files as $file) {
  25.  
  26. $patch = explode('.', $file);
  27. $patch = $patch[count($patch)-1];
  28.  
  29. if($patch == 'ini') {
  30.  
  31. $fp = fopen($file, 'r');
  32. $zaw = fread($fp, filesize($file));
  33.  
  34. $lines = explode(';', $zaw);
  35.  
  36. for($i = 0; $i < count($lines); $i++) $info[$y][$i] = explode(':', $lines[$i]);
  37.  
  38.    }
  39. $y++;
  40.  }
  41. return $info;
  42. }
  43. ?>


I probuje wyswietlic rezultat:
  1. <?php
  2. else if(isset($_GET['view']) && !empty($_GET['view'])) {
  3.  
  4. $a = load_info_modules('./system/modules/');
  5. $zawartosc = print_r($a);
  6.  
  7. $zawartosc .= '<div id="pasek_modules" style="background: url(grafiki/administration/pasek_modules.png) repeat;">
  8. <div class="menu_modules" style="background: url(grafiki/administration/menu_modules.png) no-repeat;"><a href="admin.php?view=moduly&tryb=new">Nowy</a></div>
  9. <div class="menu_modules" style="background: url(grafiki/administration/menu_modules.png) no-repeat;"><a href="admin.php?view=moduly&tryb=zarzadzaj">Zarzadzanie<a/></div>
  10. </div>';
  11.  
  12. for($i = 0; $i < count($a); $i++) {
  13.    $zawartosc .= '<div class="mod_list">
  14.    <a href="admin.php?view=moduly&tryb=new&select='.$a['file_name'][$i].'" >
  15.    <img src="grafiki/modules/'.$a[$i]['logo'].'" alt="modul"/>
  16.    <h3>'.$a[$i]['name'].'</h3></a>
  17.    <p>'.$a[$i]['description'].'</p>
  18.    <a class="link_mini" href="admin.php?view=moduly&tryb=new&select='.$a[$i]['file_name'].'" >[Uzyj]</a>
  19.    </div>';
  20.  }
  21. }
  22. ?>


print_r() zwraca mi taka tablice:
Kod
Array (     [2] => Array         (             [0] => Array                 (                     [0] => module_name                     [1] => m_login                 )              [1] => Array                 (                     [0] =>  name                     [1] => Panel logowania                 )              [2] => Array                 (                     [0] =>  file_name                     [1] => m_login                 )              [3] => Array                 (                     [0] =>  file_name_function                     [1] => f_m_login                 )              [4] => Array                 (                     [0] =>  description                     [1] => Modul umozliwiajacy logowania sie                 )              [5] => Array                 (                     [0] =>  version                     [1] => 0.2b                 )              [6] => Array                 (                     [0] =>  date                     [1] => 11/10/2008                 )              [7] => Array                 (                     [0] =>  logo                     [1] => m_o_log.gif                 )              [8] => Array                 (                     [0] =>                    )          )      [6] => Array         (             [0] => Array                 (                     [0] => module_name                     [1] => m_admin                 )              [1] => Array                 (                     [0] =>  name                     [1] => Panel administracyjny                 )              [2] => Array                 (                     [0] =>  file_name                     [1] => m_admin                 )              [3] => Array                 (                     [0] =>  file_name_function                     [1] => f_m_admin                 )              [4] => Array                 (                     [0] =>  description                     [1] => Modul umozliwiajacy modyfikacje strony                 )              [5] => Array                 (                     [0] =>  version                     [1] => 0.1b                 )              [6] => Array                 (                     [0] =>  date                     [1] => 11/10/2008                 )              [7] => Array                 (                     [0] =>  logo                     [1] => m_o_admin_head.gif                 )              [8] => Array                 (                     [0] =>                    )          )  )


I teraz problem polega na tym ze mam plik konfiguracyjny kazdego moduly i chce wyswietlic jego info tylko nie wiem zabardzo jak wyswietlic info z tej tablicy moze zle zapisuje elementy albo cos moze ktos pomoc?
trucksweb
lecicsz funkcja foreach i warunkami if, do komenu gdy natrafisz na interesujace cie dane
Moli
Kod
Array (     [2] => Array         (             [0] => Array                 (                     [0] => module_name                     [1] => m_login                 )              [1] => Array                 (                     [0] =>  name                     [1] => Panel logowania                 )              [2] => Array                 (                     [0] =>  file_name                     [1] => m_login                 )              [3] => Array                 (                     [0] =>  file_name_function                     [1] => f_m_login                 )              [4] => Array                 (                     [0] =>  description                     [1] => Modul umozliwiajacy logowania sie                 )              [5] => Array                 (                     [0] =>  version                     [1] => 0.2b                 )              [6] => Array                 (                     [0] =>  date                     [1] => 11/10/2008                 )              [7] => Array                 (                     [0] =>  logo                     [1] => m_o_log.gif                 )              [8] => Array                 (                     [0] =>                    )          )      [6] => Array         (             [0] => Array                 (                     [0] => module_name                     [1] => m_admin                 )              [1] => Array                 (                     [0] =>  name                     [1] => Panel administracyjny                 )              [2] => Array                 (                     [0] =>  file_name                     [1] => m_admin                 )              [3] => Array                 (                     [0] =>  file_name_function                     [1] => f_m_admin                 )              [4] => Array                 (                     [0] =>  description                     [1] => Modul umozliwiajacy modyfikacje strony                 )              [5] => Array                 (                     [0] =>  version                     [1] => 0.1b                 )              [6] => Array                 (                     [0] =>  date                     [1] => 11/10/2008                 )              [7] => Array                 (                     [0] =>  logo                     [1] => m_o_admin_head.gif                 )              [8] => Array                 (                     [0] =>                    )          )  )

Uuuhhh i wszystko jasne haha.gif
marcio
Hmm chodzi o to ze mam plik m_login.ini:
Kod
module_name:m_login;
name:Panel logowania;
file_name:m_login;
file_name_function:f_m_login;
description:Modul umozliwiajacy logowania sie;
version:0.2b;
date:11/10/2008;
logo:m_o_log.gif;


I chce pobrac wszystkie te dane do tablicy zeby moc je potem wyswietlic jednak ta moja funkcja robi tablice ale troche zle ja wypelnia i nie wiem zabardzo jak to zrobic

Ma ktos jakis pomysl?
pyro
nie czytalem calego tematu, tylko odnosze sie do ostatniego posta

  1. <?php
  2. funcion get_data_to_array($file)
  3. {
  4. $new_array = array();
  5. $arr = file($file);
  6. foreach($arr as $one)
  7. {
  8. $one_arr = explode(':', $one);
  9. $new_array[$one_arr[0]] = $one_arr[1];
  10. }
  11. return $new_array;
  12. }
  13. // tablica jest w formacie klucz => wartosc
  14. ?>
marcio
EDIT: Problem rozwiazany wszystkie pliki konfiguracyjne dalem do podkatalogu /module_config/
  1. <?php
  2. function load_info_modules($dir) {
  3.  
  4. $info = array();
  5. $files = listFiles($dir);
  6. $y = 0;
  7.  
  8. foreach($files as $file) {
  9.  
  10. $patch = explode('.', $file);
  11. $patch = $patch[count($patch)-1];
  12.  
  13. if($patch == 'ini') {
  14.  
  15. $fp = fopen($file, 'r');
  16. $zaw = fread($fp, filesize($file));
  17.  
  18. $lines = explode(';', trim($zaw));
  19.  
  20. for($i = 0; $i < count($lines); $i++) {
  21.  
  22. $lines[$i] = trim($lines[$i]);
  23. $info = explode(':', $lines[$i]);
  24. $description[$y][$info[0]] = $info[1];
  25.  
  26.      }
  27.   }
  28. $y++;
  29. }
  30. return $description;
  31. }
  32.  
  33. function show_all_info_module() {
  34.  
  35. $modules_info = load_info_modules('./system/modules/modules_config/');
  36.  
  37. $inf = '<div id="pasek_modules" style="background: url(grafiki/administration/pasek_modules.png) repeat;">
  38. <div class="menu_modules" style="background: url(grafiki/administration/menu_modules.png) no-repeat;"><a href="admin.php?view=modules&env=new">Nowy modul</a></div>
  39. <div class="menu_modules" style="background: url(grafiki/administration/menu_modules.png) no-repeat;"><a href="admin.php?view=modules&env=zarzadzaj">Zarzadzanie<a/></div>
  40. </div>';
  41.  
  42. for($i = 0; $i < count($modules_info); $i++) {
  43.    $inf .= '<div class="mod_list">
  44.    <a href="admin.php?view=moduly&tryb=new&select='.$modules_info[$i]['module_name'].'">
  45.    <img width="80px" src="./grafiki/modules/'.$modules_info[$i]['logo'].'" alt="modul"/>
  46.    <h3>'.$modules_info[$i]['name'].'</h3></a>
  47.    <p>'.$modules_info[$i]['description'].'</p>
  48.    <a class="link_mini" href="admin.php?view=moduly&tryb=new&select='.$modules_info[$i]['module_name'].'" >[Uzyj]</a>
  49.    </div>';
  50.  }
  51. return $inf;
  52. }
  53. ?>


I guitar.gif gra.
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.