Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]zrzut tablicy do pliku
Forum PHP.pl > Forum > Przedszkole
peter13135
Mam tablicę wygenerowaną przez kod php, pod print_r wygląda ona tak (dla przykładu)
  1. (
  2. [key] => value
  3. [key2] => value2
  4. )

Chciałbym to teraz zapisać do pliku php pod postacią :
  1. $jakaśzmienna['key'] = 'value';
  2. $jakaszmienna['key2'] = 'value2';

lub
  1. $jakaszmienna = array('key'=>'value', 'key2'=>'value2');


Czy istnieje jakieś narzędzie/funkcja, dzięki której to osiągnę ? czy muszę sam zaimplementować sobie taki converter ? (Nie proszę o napisanie takiego konwertera, poszukuję gotowca, bo niechciałbym wyważać otwartych drzwi. Jeśli jednak taki gotowiec nie istnieje to napisze sobie to sam)
nospor
Konwerter? To to są dwie linijki kodu:
  1. $s = '';
  2. foreach ($tab as $k => $v){
  3. $s.="\$jakaśzmienna['$k'] = '$v';\n";
  4.  
  5. }

I już smile.gif
freemp3
Z tego co widzę chcesz aby po wczytaniu pliku od razu mieć tablicę w jakiejś zmiennej. Jeśli nie będzie Ci przeszkadzało to, że wynik będzie nieczytelny można użyć funkcji serialize(), a przy odczytywaniu unserialize();
Wyglądało by to mniej więcej tak:
Kod
// Tworzymy tablice
$tablica = array('klucz' => 'wartosc', 'klucz2' => 'wartosc');
// Serializujemy
$serializacja = serialize($tablica);
// Zapisujemy wynik serializacji do pliku
file_put_contents('nazwaPliku.txt', $serializacja);

//Odczyt z pliku:
$zawartoscPliku = file_get_contents('nazwaPliku.txt');
// Deserializacja do tablicy:
$tablica = unserialize($zawartoscPliku);


Jeśli natomiast już koniecznie chcesz zrobić tak jak podałeś w przykładzie powyżej to należy użyć pętli foreach i będzie to wyglądało mniej więcej tak:
Kod
// Tworzymy tablice
$tablica = array('klucz' => 'wartosc', 'klucz2' => 'wartosc');

// Tworzymy pusta zmienna którą później wypełnimy i zapiszemy do pliku
$wynikPetli = '';

// Postać pierwsza
$wynikPetli = '$jakasZmienna = array();';
foreach($tablica as $klucz => $wartosc)
{
$wynikPetli .= "\$jakasZmienna['{$klucz}'] = '{$wartosc}'";
}

// Postać druga
$wynik = '$jakasZmienna = array(';

foreach($tablica as $klucz => $wartosc)
{
$wynikPetli .= "'{$klucz}' => '{$wartosc}',";
}

//usuwamy ostatni przecinek - jeden znak od końca
$wynikPetli = substr($wynikPetli, 0, -1);
$wynikPetli .= ');';

// Zapis do pliku
file_put_contents('nazwaPliku.txt', $wynikPetli);
peter13135
Zrobiłem to w sposób podobny jak nospora, przed tym jak napisaliście wasze posty wink.gif
Prosiłem, żeby nie pisać swoich skryptów... no ale jak już mi napisaliście, to wypada mi i dać po "pomógł" wink.gif
Dziękuje za zainteresowanie tematem i pozdrawiam
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.