Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Tablica do pliku i z powrotem
Forum PHP.pl > Forum > Przedszkole
bl0ndynek
Jak zapisać tablicę do pliku tekstowego, a następnie odczytać ją tak by nadal była tablicą questionmark.gif
nospor
To zależy jaka tablica. Jeśli np. chodzi ci tylko o wartości tej tablicy to:
zapis:
  1. <?php
  2.  
  3. foreach ($tablica as $tab)
  4. {
  5.  fwrite($uchwytdopliku,$tab);
  6.  fwrite($uchwytdopliku,&#092;"n\");
  7. }
  8.  
  9. ?>

odczyt:
  1. <?php
  2.  
  3. $tablica=file(nazwapliku);
  4.  
  5. ?>
bl0ndynek
A co z taką tablicą ?
$tablica = array(
[0] => array([0]=>tekst, [1] =>tekst2)
,[1] => array([0]=>tekst3, [1]=>tekst4)
);
dr_bonzo
Przed zapisem zserializuj tablice (serialize()), a po odczycie odserializuj (unserialize())

  1. <?php
  2. file_put_contents( 'plik.txt', serialize( $tablica ) );
  3. $nowa_tablica = unserialize( file_get_contents( 'plik.txt' ) );
  4. ?>
bl0ndynek
file_put_contents to po php 5.
a pod php4 questionmark.gif
rogrog
fopen, fwrite, fclose
bl0ndynek
po wywołaniu funkcji unserialize używam funkcji array_unshift i nie rozpoznaje ona tablicy :/
rogrog
zrób sobie print_r i powinno wyswietlic
bl0ndynek
Wiem jak używać print_r

mam taki fragment kodu

$odcz=unserialize($odcz);
print_r($odczyt);
echo "<br />";
print_r($wiad); //tutaj jeszcze wszystko dobrze się wyświetla
echo "<br />";
$kill=array_unshift($odcz, $wiad);
print_r($kill); //tutaj jeszcze wszystko dobrze się wyświetla tutaj otrzymuję już tylko "2"



Może ma to jakiś pływ że zmienna $wiad jest tablicąquestionmark.gif
dr_bonzo
Zajrzyj do manuala: array_unshift()
Cytat
Returns the new number of elements in the array.

  1. <?php
  2. $kill=array_unshift($odcz, $wiad);
  3. ?>

czyli $kill zawiera liczbe elementow w tej poszerzonej talicy
wyswietl:
  1. <?php
  2. print_r( $odcz );
  3. ?>
bl0ndynek
Jak to zapisać bo te wszystkie " i ' wchodzą ze sobą w konflikty tongue.gif


  1. <?php
  2. print(&#092;"nazywam sie $odczyt['$i']['nick'] i chodze napisałem $odczyt['$i']['tekst']<br //>\");
  3. ?>
dr_bonzo
  1. <?php
  2. // dodane spacje dla czytelnosci
  3. &#092;" \" \", ' ' ' 
  4. &#092;" ' \", ' \" '
  5.  
  6. // ale uzywaj konka.... laczenia stringow:
  7. 'nazywam sie ' . $odczyt[ $i ][ 'nick' ] . ' i chodze napisałem ' . $odczyt[ $i ][ 'tekst' ] . '<br />'
  8. // nie umieszczaj zmiennych w '
  9.  
  10. ?>
Ociu
  1. <?php
  2. print(&#092;"nazywam sie \".$odczyt[$i]['nick'].\" i chodze napisałem \".$odczyt[$i]['tekst'].\"<br />\");
  3. ?>


Edit. Soryyy, nie zauważyłem postu dr_bonzo, jeśli uważanie ten post za zbędny, to do usuńce.
bl0ndynek
Czy istnieje funkcja w php 4 która nie zmieniając mi wartości i kolejności wartości (wiem że to śmiesznie brzmi) ustawi mi klucze 0, 1, 2, 3, 4, itd questionmark.gifquestionmark.gif

Oraz funkcja pozwalająca usunąć wybrany wpis z tablicy znajac jego klucz
dr_bonzo
1.
  1. <?php
  2. //chyba nie ma
  3. $nowa_tablica = array();
  4. foreach( $tablica as $value )
  5. {
  6. $nowa_tablica[] = $value;
  7. }
  8. unset( $tablica ); // juz niepotrzebna
  9. ?>

2. unset( $tablica[ $klucz ] );
bl0ndynek
Czy istnieje funkcja odwrotna do unset, umożliwiająca wstawienie wartości do podanego klucza?
rogrog
w czym problem?!

$aTablica[ $mKlucz ] = $mWartosc;
bl0ndynek
Czy może mi ktoś wytłumaczyć jak zrobić aby na stronie ukazywało sie powiedźmy 5 wpisów a pozostałe strony były dostępne w linkach questionmark.gif Dodam, że wszystko opiera się na ponumerowanych kluczach tablicy.
dr_bonzo
szukaj: stronicowanie i lepiej znajdz smile.gif
bl0ndynek
Znalazłe biggrin.gif ale nie rozumiem :/ pozatym tamto jest do mysql a ja mam zwykłą tablice :/
bregovic
I w tym momencie powinieneś się zastanowić nad różnicą pomiędzy tablicą którą masz ty, a tablicą zwróconą przez mysql - i wyciągnąć wnioski, które rozwiążą twój problem smile.gif
bl0ndynek
Wiesz jak tak to czytam to rzeczywiście wydaje mi się to proste tongue.gif
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.