Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Połaczenie tablicy asocjacyjnej z plikem tekstowym
Forum PHP.pl > Forum > PHP
Kamiloop
Witam, mam problem gdyż brak mi pomysłu jak pobrać dane z pliku tekstowego i umieścić go w tablicy asocjacyjnej.
Na razie jestem na etapie:
Skrypt php
  1. <?php
  2. $odczyt = fopen('passwd.txt','r');
  3. while(!feof($odczyt))
  4. {
  5. $linia = fgets($odczyt);
  6. $tab = explode(' ',$linia);
  7. foreach($tab as $klucz => $wartosc)
  8. {
  9. echo $klucz.' '.$wartosc;
  10. }
  11. }
  12. ?>

Dokument Tekstowy: passwd.txt
kot => biega
kura=>lata


Efekt wyjściowy jest taki: 0 kot1 =>2 biega 0 kura=>lata i nie oto mi chodziło :/ Chciałbym żeby to wyglądało mniej więcej że kiedy wpisze
  1. $klucz
Wypisało mi kot kura. Da się tak zrobić?
Bardzo Proszę o pomoc smile.gif
kapslokk
Explode zrób po "=>" a nie " ".
Kamiloop
Cytat(kapslokk @ 10.06.2016, 18:32:14 ) *
Explode zrób po "=>" a nie " ".

Zrobiłem też i tak ale Nadal to nic nie zmienia oprócz tego że kod wyjściowy wygląda tak: kot biega kuralata
A chciałbym, mieć tak że jeżeli wywołam
  1. $klucz
lub
  1. $wartosc
wywołało mi kot kura albo biega lata.
kapslokk
Chłopie, masz echo $klucz.' '.$wartosc; w kodzie, więc kot biega kuralata jest ok. Jak chcesz same klucze to wyświetlaj same klucze.
Kamiloop
Cytat(kapslokk @ 10.06.2016, 18:38:35 ) *
Chłopie, masz echo $klucz.' '.$wartosc; w kodzie, więc kot biega kuralata jest ok. Jak chcesz same klucze to wyświetlaj same klucze.

Przepraszam że tego nie ująłem kod też poprawiłem smile.gif
  1. <?php
  2. $odczyt = fopen('passwd.txt','r');
  3. while(!feof($odczyt))
  4. {
  5. $linia = fgets($odczyt);
  6. $tab = explode('=>',$linia);
  7. foreach($tab as $klucz => $wartosc)
  8. {
  9. echo $wartosc;
  10. }
  11. }
  12. ?>

I właśnie zwraca mi kot biega kuralata. Proszę o pomoc w którymś miejscu jest coś nie tak, a ja nie potrafię tego naprawić :/
kapslokk
AA bo klucze to 0 i 1 . $tab[0] to klucz ktory potrzebujesz a $tab[1] to wartosc.

explode('=>',$linia); zwraca Ci tablice:
array(0=>"kot ", 1=>" biega");

Foreach jest Ci zupełnie nie potrzebny.
Kamiloop
Cytat(kapslokk @ 10.06.2016, 18:43:19 ) *
AA bo klucze to 0 i 1 . $tab[0] to klucz ktory potrzebujesz a $tab[1] to wartosc.

explode('=>',$linia); zwraca Ci tablice:
array(0=>"kot ", 1=>" biega");

Foreach jest Ci zupełnie nie potrzebny.

No tak, tylko że w kodzie, nie jest wspomniane że akurat będzie tam 'kot' i 'biega'. Trudność polega na tym że powinno się ładnie to odczytywać z pliku tekstowego. Niby trudne się nie wydaje, ale gorzej z wykonaniem smile.gif
PS. Jeżeli np wywołam
  1. $klucz
to zwraca mi 0101.
kapslokk
  1. <?php
  2. $lines = file('passwd.txt');
  3. foreach($lines as $line){
  4. $line = explode('=>', $line);
  5. echo $line[0]; //Tutaj wyswietlasz Twój klucz
  6. echo $line[1]; //Tutaj wyswietlasz Twoją wartość
  7. }


Chcesz wyświetlić same klucze? Usuń linijkę od wartości. Same wartości? Analogicznie do kluczy.
Kamiloop
Cytat(kapslokk @ 10.06.2016, 18:53:44 ) *
  1. <?php
  2. $lines = file('passwd.txt');
  3. foreach($lines as $line){
  4. $line = explode('=>', $line);
  5. echo $line[0]; //Tutaj wyswietlasz Twój klucz
  6. echo $line[1]; //Tutaj wyswietlasz Twoją wartość
  7. }


Chcesz wyświetlić same klucze? Usuń linijkę od wartości. Same wartości? Analogicznie do kluczy.

Dobra Dzięki, chciałeś pomóc. Doceniam to smile.gif Ale wydaje mi się że jeszcze sporo przy tym pracy. Przy twoim kodzie troche mi sie zapętliło wink.gif
kapslokk
biggrin.gif To może jeszcze raz od początku. Pokaż jaki masz ten plik passwd.txt i co dokladnie chcesz wyświetlić.
Kamiloop
Mój plik w passwd.txt
kot => biega
kura=>lata
Co chcę wyświetlić:
W pliku passwd jak łatwo (z linuxa) można się domyślić chciałbym pobierać loginy i hasła. Np: Login - kot haslo - biega.
Mniej wiecej o to mi chodzi. Chciałem po prostu to w miare łatwy sposób pobierać, oraz móc do loginu i hasła oddzielnie się odwoływać. Niby proste ale...
LowiczakPL
  1.  
  2. <?php
  3. $odczyt = fopen('passwd.txt','r');
  4. while(!feof($odczyt))
  5. {
  6. $tab = explode('=>',fgets($odczyt));
  7. echo $tab[0];
  8. }
  9.  
  10. ?>


  1.  
  2. <?php
  3. $odczyt = fopen('passwd.txt','r');
  4. while(!feof($odczyt))
  5. {
  6. $tab = explode('=>',fgets($odczyt));
  7. echo $tab[1];
  8. }
  9.  
  10. ?>


  1.  
  2. <?php
  3. $odczyt = fopen('passwd.txt','r');
  4. while(!feof($odczyt))
  5. {
  6. $tab = explode('=>',fgets($odczyt));
  7. echo $tab[0].'=>'.$tab[1];
  8. }
  9.  
  10. ?>
Kamiloop
Cytat(LowiczakPL @ 10.06.2016, 19:11:22 ) *
  1.  
  2. <?php
  3. $odczyt = fopen('passwd.txt','r');
  4. while(!feof($odczyt))
  5. {
  6. $tab = explode('=>',fgets($odczyt));
  7. echo $tab[0];
  8. }
  9.  
  10. ?>


  1.  
  2. <?php
  3. $odczyt = fopen('passwd.txt','r');
  4. while(!feof($odczyt))
  5. {
  6. $tab = explode('=>',fgets($odczyt));
  7. echo $tab[1];
  8. }
  9.  
  10. ?>

Dzięki, pomogłeś smile.gif Nie wiedziałem, że taki mały szczegół i cały kod psuje smile.gif Jeszcze raz Dziękuję Tobie i kapslokowi smile.gif
Pozdrawiam smile.gif
kapslokk
To może jeszcze raz to samo, tylko bardziej obrazowo:


  1. <?php
  2. $lines = file('passwd.txt');
  3. foreach($lines as $line){
  4. $line = explode('=>', $line);
  5. list($login, $haslo) = $line;
  6. echo("Haslo użytkownika $login to: $haslo <br/>");
  7. }
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.