Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]zrzut tablicy do pliku
peter13135
post 15.09.2011, 12:15:45
Post #1





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

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


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)


--------------------
:)
Go to the top of the page
+Quote Post
nospor
post 15.09.2011, 12:39:06
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
freemp3
post 15.09.2011, 12:44:50
Post #3





Grupa: Zarejestrowani
Postów: 467
Pomógł: 77
Dołączył: 6.09.2008
Skąd: Miechów / Kraków

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


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);


--------------------
Niemożliwym jest stworzenie czegokolwiek idiotoodpornego, ponieważ idioci są wyjątkowo pomysłowi.

https://www.aroch.pl
https://themeforest.net/user/aroch
https://www.astroblog.aroch.pl
https://www.4geeks.pl
Go to the top of the page
+Quote Post
peter13135
post 15.09.2011, 12:54:52
Post #4





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

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


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

Ten post edytował peter13135 15.09.2011, 12:55:35


--------------------
:)
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 5.07.2025 - 06:34