Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Wczytanie danych z pliku do tabeli
Forum PHP.pl > Forum > Przedszkole
simonX
Dane w pliku zapisują mi się w takiej postaci :
  1. <?php
  2. $uploaddir = 'upload/';
  3. $uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
  4.  
  5. if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
  6.   echo "<center><font color=\"white\" size=\"4\">Plik został poprawnie załadowany!</center><br>";
  7.  
  8. $nazwa='spis.txt';
  9. $old=file_get_contents($nazwa);
  10. $string="<a href=\"$uploadfile\">".basename($_FILES['userfile']['name'])."Rozmiar:".($_FILES['userfile']['size'])."</a><br>";
  11. $new=$string.$old;
  12. $plik=fopen($nazwa,"w");
  13. fwrite($plik,$new);
  14. echo "<center><a href=\"odczyt.php\">Przejdz do listy</a></center>";
  15.  
  16.    
  17.  
  18. }
  19. else
  20. {
  21.   echo "błędny plik.\n";
  22. }
  23.  
  24. fclose($plik);
  25. ?>


I teraz chcialbym żeby nazwa pliku byla wczytywana do jednej komórki a rozmiar pliku do drugiej. Z pomocą może przyjść funkcja split("Rozmiar:",$old) tylko w jaki sposób je pozniej odzielnie wczytac do komórek konkretnych. Trochę pogmatwane, ale chyba wiecie o o co chodzi:P
erix
A czemu zapisujesz to w takim dziwnym formacie...?

Cytat
Z pomocą może przyjść funkcja split("Rozmiar:",$old) tylko w jaki sposób je pozniej odzielnie wczytac do komórek konkretnych.

A czy dział o tablicach w manualu przeczytałeś?
simonX
W złym formacie ? to jak dane należy zapisać by później łatwo je wczytać?
erix
Cytat
to jak dane należy zapisać by później łatwo je wczytać?

No np. dane||dane i potem wszystko ładnie explode" title="Zobacz w manualu PHP" target="_manualm obrabiasz. W sumie wyjdzie na to samo, ale jeśli będziesz chciał zmienić format linków, to będzie o kilka operacji mniej do wykonania.
simonX
To zrobiłem za pomocą explode, ale wczytuje mi tylko pierwszy zapis i dalej nie czyta a użyłem pętli:

  1. <?php
  2.  
  3. $plik=file("spis.txt");
  4.  
  5.  
  6. for($linia=0; $linia < count($plik); $linia ++ ){
  7.  
  8.  
  9. $dziel=explode("Rozmiar:",$plik[$linia]);
  10.  
  11. echo $dziel[0];
  12.  
  13. }
  14.  
  15. ?>
erix
Cytat
ale wczytuje mi tylko pierwszy zapis i dalej nie czyta a użyłem pętli:

Bo file" title="Zobacz w manualu PHP" target="_manual rozdziela na linie wg znaku końca linii (\n), a nie <br/>.
simonX
No to użyłem file_get_contents, ale też nie działa tongue.gif może bymi ktoś podpowiedział jaką funkcję mam wykorzystać.
erix
Pokaż, jak próbowałeś, co konkretnie nie działa.

file_get_contents" title="Zobacz w manualu PHP" target="_manual Ci nie rozdzieli, jak coś. winksmiley.jpg
simonX
Nie nie za pomocą file_get_contents próbowałem pobrać dane z pliku bo mowiłeś ze file tylko czyta do pewnego znaku
oto kod
  1. <?php
  2.  
  3. $plik=file_get_contents("spis.txt");
  4. for($linia=0; $linia<count($plik); $linia ++ ){
  5. $dziel=explode("Rozmiar:",$plik[$linia]);
  6. echo $dziel[0];
  7. }
  8. ?>
erix
Najpierw musisz podzielić ten plik na linie, a Ty tego nie robisz.
simonX
To już nie wiem jak daj jakiś przykład albo cos żebym się miał gdzie zahaczyć.
simonX
Ten sposób też nie działa już próbowałem wcześniej:(.
erix
Pokaż, jak próbowałeś. Trzeba połączyć tę funkcję, którą podlinkowałem z explode" title="Zobacz w manualu PHP" target="_manualm.
simonX
Oto cały kod:
  1. <?php
  2. $nazwa=("ksiega.txt");
  3. $plik=fopen($nazwa, "r");
  4.  
  5. while(!feof($plik)){
  6. $bufor=fgets($plik);
  7. }
  8. for($linia=0; $linia<count($bufor); $linia ++ ){
  9. $dziel=explode("Rozmiar:",$bufor[$linia]);
  10. echo $dziel[0];
  11. }
  12. ?>
erix
  1. <?php
  2. while(!feof($plik)){
  3. $bufor=fgets($plik);
  4. }
  5. ?>


Widać, jak uważnie czytasz, co ja piszę:
Cytat(erix @ 24.01.2009, 21:24:24 ) *
Bo file" title="Zobacz w manualu PHP" target="_manual rozdziela na linie wg znaku końca linii (\n), a nie <br/>.


Nie bez powodu zalinkowałem do funkcji z komentarza manuala PHP.
simonX
Słuchaj nie znam sie na tym po za tym nie umiem angielskiego ile postów nabiłem a mógłeś po prostu napisać ten przykład i by było po kłopocie:/
erix
Na tym forum nie dajemy gotowców. Przynajmniej ja nie daję. Wywal mi licznik postów, a i tak Ci nie dam gotowca.

Cytat
Słuchaj nie znam sie na tym po za tym nie umiem angielskiego
  1. to czytaj uważnie, co piszę, to się dowiesz winksmiley.jpg
  2. chcesz jechać samochodem i nie wiesz, jak kierownicą kręcić? Masz Google translate, masę słowników.
simonX
Ehhh..... dobra będę musiał sam dojść do tego bo mi nikt nie pomoże:( ale czytałem twoje portfolio i muszę powiedzieć, że mi zaimponowałeś tongue.gif.Pozdro

Dobra udało mi się zrobić żeby wypisywało tą nazwę, ale nadal wypisuje tylko z pierwszego wpisu
  1. <?php
  2. $nazwa="spis.txt";
  3. $plik = fopen($nazwa, "r");
  4. if ($plik) {
  5.    while (!feof($plik)) {
  6.        $buffer = fgets($plik;
  7. $dziel=explode("Rozmiar:",$buffer);
  8. echo $dziel[0];// tutaj jakas petle jeszcze czy cus?
  9. }//while
  10.  
  11. fclose($plik);
  12. }//if
  13. ?>
erix
  1. <?php
  2. $buffer = fgets($plik;
  3. ?>


fgets" title="Zobacz w manualu PHP" target="_manual rozdziela linie wg "\n", czyli znaku nowej linii, którego w Twoim pliku NIE MA, co już Ci zasygnalizowałem:
Cytat(erix @ 25.01.2009, 22:32:05 ) *

ale Ty dalej swoje tongue.gif
simonX
Załóżmy że to jest zawartość mojego pliku w którym miejscu musiałbym wstawić \n ten znak żeby mi wczytywał calość tam gdzie się kończy jeden wpis za "</a>"?
Kod
<a href="upload/adres.php">adres.php Rozmiar:228</a><a href="upload/adres.php">adres.php Rozmiar:228</a>
erix
Nie musisz wstawiać tego znaku. Wystarczy, że użyjesz tej funkcji, do której linkowałem dwa razy, to by było ok. Możesz w niej skorzystać z innego znaku niż nowej linii -> nie będzie trzeba przerabiać.

A gdzie wstawić? Na końcu każdego rekordu.
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.