Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zwracanie do pliku array_walk_recursive
piodof
post
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 3.01.2007
Skąd: Białystok

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


Cześć,

Mam mały problem. Próbuje zwrócić do pliku wartość funkcji array_walk_recursive ale zwraca mi tylko cyfre 1. Przepisywałem to na 10 sposobów i już nie mam pomysłów. Może ktoś miał okazję wykorzystywać array_walk_recursive do tablicy wielowymiarowej?

To jest aktualny kod:

  1. <?php
  2. class testClass {
  3.    function callbackFunction($value, $key) {
  4.        global $data;
  5.        echo $data.$value;
  6.        $data=',';
  7.    }
  8.    function printArray($foo) {
  9.        $zrzut = array_walk_recursive($foo, array($this, 'callbackFunction'));
  10.        return $zrzut;
  11.    }
  12.    function zapis($nazwa_pliku) {
  13.    
  14.        global $tablica;
  15.        $printer = $this->printArray($tablica);
  16.    
  17.        if (is_writeable($nazwa_pliku))
  18.          {
  19.           if ($plik = fopen($nazwa_pliku, "w+"))
  20.             {
  21.              if (fwrite($plik, $printer) !== FALSE) echo "Zapis ok...<a href=".$nazwa_pliku.">".$nazwa_pliku."</a>";
  22.                else echo "Zapis błąd";
  23.        
  24.              fclose($plik);
  25.        
  26.             } else echo "Brak połączenia";
  27.        
  28.          } else echo "Plik nie istnieje lub złe prawa zapisu";
  29.    }
  30. }
  31.  
  32. $class = new testClass();
  33. $class->zapis('test.txt');
  34. ?>


Po wywołaniu klasy w przeglądarce wyświetlają się wartości tablicy a powinny zapisać się do pliku. W pliku zapisany jest tylko jeden znak - cyfra 1. Ma ktoś może pomysł jak zapisać wartości do pliku a nie wyświetlić w przeglądarce?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
piodof
post
Post #2





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 3.01.2007
Skąd: Białystok

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


Udało mi się nareszcie to zrobić. Dziękuje wszystkim za pomoc i naprowadzenie mnie na prawidłową drogę:) Dla zainteresowanych poniżej wrzucam kod. Klasa zapisuje do pliku wybrane wartości elementu z tablicy wielowymiarowej. Wystarczy w parametrze funkcji okreslic operatory (tablica, klucz oraz separator). Przykładowa tablica, na której bazuje klasa jest w poście wyżej.

  1. <?php
  2. class recursiveArrayValuesToFile {
  3.  
  4. function ArrayJoinByKey($Array, $ByKey, &$Przecinek) {
  5.  
  6.    foreach( $Array as $Key => $Value ) {
  7.  
  8.        if( is_array($Value) ) {
  9.  
  10.            $Joined .= $this->ArrayJoinByKey($Value,$ByKey,$Przecinek) ;
  11.        }
  12.        else if( $ByKey == $Key) {
  13.  
  14.            $Joined .= $Przecinek.$Value ;
  15.            $Przecinek = ',' ;
  16.        }
  17.    }
  18.    
  19.    return $Joined ;
  20. }
  21.    function Zapis($NazwaPliku) {
  22.    
  23.        global $xml_array ;
  24.        
  25.        $Printer = $this->ArrayJoinByKey($xml_array, '#text', $Przecinek) ;
  26.    
  27.        if (is_writeable($NazwaPliku))
  28.          {
  29.           if ($Plik = fopen($NazwaPliku, "w+"))
  30.             {
  31.              if (fwrite($Plik, $Printer) !== FALSE) echo "<BR><BR>Zapis ok...<a href=".$NazwaPliku.">".$NazwaPliku."</a>" ;
  32.                else echo "Zapis błąd" ;
  33.        
  34.              fclose($Plik) ;
  35.        
  36.             } else echo "Brak połączenia" ;
  37.        
  38.          } else echo "Plik nie istnieje lub złe prawa zapisu" ;
  39.    }
  40. }
  41.  
  42. $class = new recursiveArrayValuesToFile() ;
  43. $class->Zapis('test.txt') ;
  44. echo '<BR><BR>'.$class->ArrayJoinByKey($xml_array, '#text', $Przecinek) ;
  45. ?>
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 14.10.2025 - 16:16