Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] funkcja odczytujaca z pliku i zapisujaca do tabeli
-gosc-
post
Post #1





Goście







Witam, proszę o odpowiedź, czy jest funkcja która mogłaby odczytać z pliku txt dane i wpisać do tablicy ? Wiem, że jest explode() i to generalnie pasuje do odpowiedzi na moje pytanie, ale chciałbym aby funkcja ta zapisywała pierwszy wyraz jako klucz, a drugi jako wartość. Powiedzmy że w pliku txt w jednej linii mam dwie wartości rozdzielone jakimś znakiem ( np. : ) i funkcja zapisywałaby to co przed znakiem : jako klucz, a to co po znaku : jako wartość. Tak, aby potem korzystając z funkcji array_search mógł odszukać w tabeli klucz podając funkcji wartość. Mam nadzieję, że w miarę wyraźnie opisałem jakiej funkcji poszukuję.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




while" title="Zobacz w manualu PHP" target="_manual + fgets" title="Zobacz w manualu PHP" target="_manual + explode" title="Zobacz w manualu PHP" target="_manual.


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

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
piotrooo89
post
Post #3


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




  1. <?php
  2. $plik = file('dane.txt');
  3.    for($i = 0; $i <= count($plik); $i++)
  4.    {
  5.        echo $plik[$i];
  6.        $p=explode(':', $plik[$i]);
  7.        $tab=array($p[0] => $p[1]);
  8.        print_r($tab);
  9.    }
  10. ?>


coś takiego?


--------------------
Go to the top of the page
+Quote Post
-gosc-
post
Post #4





Goście







piotrooo89 - nie do końca ponieważ to co uzyskuję wygląda tak : Array ( [koment1] => 1 ) Array ( [koment2] => 2 ) Array ( [koment3] => 3 ) Array ( [koment4] => 4 ) Array ( [koment5] => 5 ) Array ( [] => )
a powinno tak Array ( [koment1] => 1 , [koment2] => 2 , [koment3] => 3 , [koment4] => 4 , [koment5] => 5 ), ale użyta na początku funkcja file() nasunęła mi pewną myśl, a mianowicie, czy nie wydajniej byłoby za pomocą file zapisywać całe linie do tabeli, po czym przeszukać ją i dopiero w przypadku znalezionego wiersza wykonać explode i potem dopiero operować na zwróconych danych ? Wydaje mi się, że to będzie bardziej wydajne.
Go to the top of the page
+Quote Post
marcio
post
Post #5





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


  1. <?php
  2. $plik = file('dane.txt');
  3.    for($i = 0; $i <= count($plik); $i++)
  4.    {
  5.        echo $plik[$i];
  6.        $p = explode(':', $plik[$i]);
  7.        $tab[$p[0]] = $p[1];
  8.        print_r($tab);
  9.    }
  10. ?>


Ten post edytował marcio 23.11.2008, 21:38:05


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
piotrooo89
post
Post #6


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




jestes dużo możliwości możesz spróbować ale nie wiem czy do końca będzie to aż tak wydajne.


--------------------
Go to the top of the page
+Quote Post
-gosc-
post
Post #7





Goście







marcio - dzieki za kod, ale z jakiegoś powodu taki kawałek nie zwraca nic: echo $klucz = array_search('2', $tab); a według mnie powinien, mimo wszystko dzięki, że Ci się chciało smile.gif
piotrooo89 - Tobie również dziękuje, pchnąłeś to co chciałem napisać do przodu smile.gif a jak będzie z wydajnością przekonam się w praktyce.
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 Aktualny czas: 21.08.2025 - 14:01