Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [PHP]Wczytanie danych z pliku do tabeli
simonX
post
Post #1





Grupa: Zarejestrowani
Postów: 175
Pomógł: 2
Dołączył: 30.07.2008

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


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
Go to the top of the page
+Quote Post
erix
post
Post #2





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




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ś?
Go to the top of the page
+Quote Post
simonX
post
Post #3





Grupa: Zarejestrowani
Postów: 175
Pomógł: 2
Dołączył: 30.07.2008

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


W złym formacie ? to jak dane należy zapisać by później łatwo je wczytać?
Go to the top of the page
+Quote Post
erix
post
Post #4





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




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.
Go to the top of the page
+Quote Post
simonX
post
Post #5





Grupa: Zarejestrowani
Postów: 175
Pomógł: 2
Dołączył: 30.07.2008

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


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. ?>
Go to the top of the page
+Quote Post
erix
post
Post #6





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




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/>.
Go to the top of the page
+Quote Post
simonX
post
Post #7





Grupa: Zarejestrowani
Postów: 175
Pomógł: 2
Dołączył: 30.07.2008

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


No to użyłem file_get_contents, ale też nie działa (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) może bymi ktoś podpowiedział jaką funkcję mam wykorzystać.
Go to the top of the page
+Quote Post
erix
post
Post #8





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




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ś. (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
simonX
post
Post #9





Grupa: Zarejestrowani
Postów: 175
Pomógł: 2
Dołączył: 30.07.2008

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


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. ?>
Go to the top of the page
+Quote Post
erix
post
Post #10





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




Najpierw musisz podzielić ten plik na linie, a Ty tego nie robisz.
Go to the top of the page
+Quote Post
simonX
post
Post #11





Grupa: Zarejestrowani
Postów: 175
Pomógł: 2
Dołączył: 30.07.2008

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


To już nie wiem jak daj jakiś przykład albo cos żebym się miał gdzie zahaczyć.
Go to the top of the page
+Quote Post
erix
post
Post #12





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




http://pl.php.net/manual/en/function.fgets.php#47536
Go to the top of the page
+Quote Post
simonX
post
Post #13





Grupa: Zarejestrowani
Postów: 175
Pomógł: 2
Dołączył: 30.07.2008

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


Ten sposób też nie działa już próbowałem wcześniej:(.
Go to the top of the page
+Quote Post
erix
post
Post #14





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




Pokaż, jak próbowałeś. Trzeba połączyć tę funkcję, którą podlinkowałem z explode" title="Zobacz w manualu PHP" target="_manualm.
Go to the top of the page
+Quote Post
simonX
post
Post #15





Grupa: Zarejestrowani
Postów: 175
Pomógł: 2
Dołączył: 30.07.2008

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


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. ?>
Go to the top of the page
+Quote Post
erix
post
Post #16





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




  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.
Go to the top of the page
+Quote Post
simonX
post
Post #17





Grupa: Zarejestrowani
Postów: 175
Pomógł: 2
Dołączył: 30.07.2008

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


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:/
Go to the top of the page
+Quote Post
erix
post
Post #18





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




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 (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
  2. chcesz jechać samochodem i nie wiesz, jak kierownicą kręcić? Masz Google translate, masę słowników.
Go to the top of the page
+Quote Post
simonX
post
Post #19





Grupa: Zarejestrowani
Postów: 175
Pomógł: 2
Dołączył: 30.07.2008

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


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ś (IMG:http://forum.php.pl/style_emoticons/default/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. ?>
Go to the top of the page
+Quote Post
erix
post
Post #20





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




  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 (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
simonX
post
Post #21





Grupa: Zarejestrowani
Postów: 175
Pomógł: 2
Dołączył: 30.07.2008

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


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>
Go to the top of the page
+Quote Post
erix
post
Post #22





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




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.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 01:14