Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [PHP] Includowanie wybranych linii z pliku txt oraz zapisywanie w wybranych liniach
janekpogwad
post
Post #1





Grupa: Zarejestrowani
Postów: 51
Pomógł: 1
Dołączył: 22.09.2008
Skąd: Wadowice

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


Witam,
pozwolę sobie zadać 2 pytania w jedynym temacie, ponieważ są spokrewnione ze sobą.

Otóż:

  • Jak można (i czy w ogóle jest to możliwe) includować wybrane linie pliku?
  • Jak można zapisywać dane w pliku txt, w wybranych liniach pliku?


Liczę na odpowiedź (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Berg
post
Post #2





Grupa: Zarejestrowani
Postów: 180
Pomógł: 37
Dołączył: 1.05.2008
Skąd: Białystok

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


file - wczytujesz wszystko do tablicy gdzie kolejny element to nowa linia wczytanego pliku (IMG:style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
Pawel_W
post
Post #3





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

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


Cytat(Berg @ 16.08.2009, 17:39:40 ) *
file - wczytujesz wszystko do tablicy gdzie kolejny element to nowa linia wczytanego pliku (IMG:style_emoticons/default/winksmiley.jpg)

includowanie a pobieranie do zmiennej to 2 różne rzeczy (IMG:style_emoticons/default/winksmiley.jpg)

nie rozumiem tylko do czego Ci to potrzebne? nie lepiej zapisać te pare linijek do funkcji, a potem includować cały plik i wywoływać tylko tą funkcję?

co do 2 to musisz odpowiednio sformatować string używając "\n" i "\r"
Go to the top of the page
+Quote Post
Berg
post
Post #4





Grupa: Zarejestrowani
Postów: 180
Pomógł: 37
Dołączył: 1.05.2008
Skąd: Białystok

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


No tak ale jeśli wie którą linię chce includować to odczytuje wartość z tablicy, wywala znak nowej linii z końca i może includować (IMG:style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
Pawel_W
post
Post #5





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

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


tak?

to spróbuj z czymś takim:
  1. <?php
  2. $text = 'echo "aaaa"';
  3. include($text);
  4. ?>

i napisz mi co widzisz (IMG:style_emoticons/default/haha.gif)
Go to the top of the page
+Quote Post
janekpogwad
post
Post #6





Grupa: Zarejestrowani
Postów: 51
Pomógł: 1
Dołączył: 22.09.2008
Skąd: Wadowice

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


Przypominam, że piszecie w PRZEDSZKOLU i ja z tego praktycznie nic nie rozumiem. Przykłady, ludzie, przykłady! Wtedy sobie mogę jakoś przerobić skrypt.

Co do drugiego to mamy załóżmy taki plik:

  1. <?php
  2.  
  3. echo('test');
  4. echo('<br />test2');
  5.  
  6. ?>


I jak chce zapisać

  1. echo('<br />test3');


dokładnie w linii 5 (czyli zaraz po test2). Czy jest to realne? Jak tak, to poproszę o przykłady lub wskazówki.

Ten post edytował janekpogwad 16.08.2009, 16:58:05
Go to the top of the page
+Quote Post
ultra_18
post
Post #7





Grupa: Zarejestrowani
Postów: 71
Pomógł: 4
Dołączył: 30.10.2008

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


1 pytanie:
Pobierasz text funkcja file() i pozniej go wykonujesz funkcja eval()

np: chcesz wykonac 2 i 13 linie kodu:

  1. $zawartosc = file('plik.txt');
  2.  
  3. eval($zawartosc[1]);
  4. eval($zawartosc[12]);


2 pytanie:
wczytujesz caly plik , później modyfikujesz ten wczytany text dopisujac linijki tam gdzie chcesz i nadpisujesz stary plik

Ten post edytował ultra_18 16.08.2009, 17:00:25
Go to the top of the page
+Quote Post
Berg
post
Post #8





Grupa: Zarejestrowani
Postów: 180
Pomógł: 37
Dołączył: 1.05.2008
Skąd: Białystok

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


Chodziło mi raczej o pliki txt w stylu
  1. /baza/plik_1.php
  2. /baza/plik_2/php
  3. /baza/plik_3.php
(IMG:style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
Pawel_W
post
Post #9





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

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


1. Pobierasz cały plik do tablicy - file
2. Definiujesz zmienną, żeby nie było błędów ($jakas_zmienna = '');
3. W pętli for($i=0,$c=count($jakas_tablica_z_funkcji_file);$i<$c;$i++) dodajesz do ciągu kolejne linijki
4. Jeżeli $i + 1 = linijka do której chcesz coś wklepać to to wklepujesz (IMG:style_emoticons/default/haha.gif)
5. Zapisujesz - file_put_contents

myślę, że wyraziłem się jasno (IMG:style_emoticons/default/biggrin.gif)

Cytat(ultra_18 @ 16.08.2009, 17:59:18 ) *
1 pytanie:
Pobierasz text funkcja file() i pozniej go wykonujesz funkcja eval()

np: chcesz wykonac 2 i 13 linie kodu:

  1. $zawartosc = file('plik.txt');
  2.  
  3. eval($zawartosc[1]);
  4. eval($zawartosc[12]);


2 pytanie:
wczytujesz caly plik , później modyfikujesz ten wczytany text dopisujac linijki tam gdzie chcesz i nadpisujesz stary plik

ludzie, ludzie to nie jest takie eval jak w javascript, może najpierw sprawdź a potem pisz (IMG:style_emoticons/default/haha.gif)
Go to the top of the page
+Quote Post
Fifi209
post
Post #10





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Paweł a dlaczego miałoby nie działać ?

  1. <?php
  2.  
  3. $test = 'echo \'a\';';
  4.  
  5. eval($test);
  6.  
  7. ?>


Spróbuj, 99% że zadziała.
Go to the top of the page
+Quote Post
Pawel_W
post
Post #11





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

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


sorry, moja wina, średnika po echo nie postawiłem (IMG:style_emoticons/default/winksmiley.jpg) w takim razie wszystko ok
Go to the top of the page
+Quote Post
Berg
post
Post #12





Grupa: Zarejestrowani
Postów: 180
Pomógł: 37
Dołączył: 1.05.2008
Skąd: Białystok

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


eval w PHP, eval w JS. Zasada działania imo podobna (IMG:style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
janekpogwad
post
Post #13





Grupa: Zarejestrowani
Postów: 51
Pomógł: 1
Dołączył: 22.09.2008
Skąd: Wadowice

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


ultra_18, pomogło i działa! Dzięki!

Pawel_W, co z tego, że nie to samo eval, jak mi działa? O co to chodzi? O standardy? Jeśli tak, to ja ja jestem daleko za murzynami, bo wszystko trzymam w plikach txt. Gdyby to było w bazie, to by w ogóle problemu nie było, nie? Tabele i koniec w MySQL... No ale ja tego jeszcze nie pojąłem moim mózgiem. (IMG:style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
Pawel_W
post
Post #14





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

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


bardziej mi chodziło o to, że wyskoczył mi błąd (przez brakujący średnik jak się później okazało), a że nie znalazłem w manualu informacji o działaniu podobnym do include, więc stwierdziłem, że metoda jest niepoprawna (IMG:style_emoticons/default/winksmiley.jpg) jeszcze raz przepraszam, że tak namieszałem (IMG:style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
janekpogwad
post
Post #15





Grupa: Zarejestrowani
Postów: 51
Pomógł: 1
Dołączył: 22.09.2008
Skąd: Wadowice

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


Cytat(Pawel_W @ 16.08.2009, 18:03:09 ) *
1. Pobierasz cały plik do tablicy - file
2. Definiujesz zmienną, żeby nie było błędów ($jakas_zmienna = '');
3. W pętli for($i=0,$c=count($jakas_tablica_z_funkcji_file);$i<$c;$i++) dodajesz do ciągu kolejne linijki
4. Jeżeli $i + 1 = linijka do której chcesz coś wklepać to to wklepujesz (IMG:style_emoticons/default/haha.gif)
5. Zapisujesz - file_put_contents

myślę, że wyraziłem się jasno (IMG:style_emoticons/default/biggrin.gif)


A to Paweł ma być to "zapisywanie w wybranych liniach"? Poproszę jednak o przykład, muszę się tego jakoś nauczyć, tak, jak kiedyś się nauczyłem echo(). (IMG:style_emoticons/default/winksmiley.jpg)

Ten post edytował janekpogwad 16.08.2009, 17:21:43
Go to the top of the page
+Quote Post
Pawel_W
post
Post #16





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

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


  1. $plik = file('jakis_plik.txt'); // punkt 1
  2. $linia = 10; // linia 10
  3.  
  4. $string = ''; // punkt 2
  5. for($i=0,$c=count($plik);$i<$c;$i++) // punkt 3
  6. {
  7. if($i+1 == $linia)
  8. $plik[$i] = 'jakis_tekst_do_podmiany'; // punkt 4
  9.  
  10. $string.=trim($plik[$i])."\n\r";
  11. }
  12. file_put_content('jakis_plik.txt', $string) // punkt 5


tyle
Go to the top of the page
+Quote Post
janekpogwad
post
Post #17





Grupa: Zarejestrowani
Postów: 51
Pomógł: 1
Dołączył: 22.09.2008
Skąd: Wadowice

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


Już prawie dobrze, ale... to podmienia, a ja chce, żeby:

1. odszukaj linię 5
2. daj enter i napisz "ble-ble"
3. zamknij plik - koniec algorytmu

i za każdym razem rozpoczynało od linii 5, co skutkowałoby, że starsze wpisy zostałyby. \n jakoś dziwnie nie działa (IMG:style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
Fifi209
post
Post #18





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Bo musisz dać w cudzysłowach to po pierwsze a po drugie \n\r (dla windows)
Go to the top of the page
+Quote Post
janekpogwad
post
Post #19





Grupa: Zarejestrowani
Postów: 51
Pomógł: 1
Dołączył: 22.09.2008
Skąd: Wadowice

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


Jest w cudzysłowach, mam Linux, ale też pod nim to działało. No dobra, a pod Linuxem co ma niby być, bo tutaj się kompletne jaja robią. Podmienia, robić przerwy gdzie nie trzeba. Ja chce tak, jak napisałem, przed Twoim, fifi, postem.
Go to the top of the page
+Quote Post
Fifi209
post
Post #20





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Wczytaj przez file i będziesz miał w tekst w tablicy.
jedna wartość w tablicy odpowiada jednej linii w pliku.

Tak więc jeżeli znasz linię...

Odczytaj plik, pierwsze 4 linie przepisz bez zmian, potem dopisz swoją i na końcu resztę.
Go to the top of the page
+Quote Post
janekpogwad
post
Post #21





Grupa: Zarejestrowani
Postów: 51
Pomógł: 1
Dołączył: 22.09.2008
Skąd: Wadowice

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


Dałbyś przykład?
Go to the top of the page
+Quote Post
Fifi209
post
Post #22





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


  1. <?php
  2.  
  3. $tekst = file('test.txt');
  4.  
  5. $nowy = '';
  6.  
  7. for ($i=0; $i < 4; $i++) {
  8. $nowy .= $tekst[$i];
  9. }
  10.  
  11. $nowy .= "Nowa linia\n";
  12.  
  13. for ($i=4; $i < count($tekst); $i++) {
  14. $nowy .= $tekst[$i];
  15. }
  16.  
  17. echo $nowy;
  18.  
  19. ?>


Zapisywania nie chciało mi się robić. (IMG:style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
janekpogwad
post
Post #23





Grupa: Zarejestrowani
Postów: 51
Pomógł: 1
Dołączył: 22.09.2008
Skąd: Wadowice

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


Jest, działa!!! WIELKIE DZIĘKI, FIFI!!! NAPRAWDĘ BARDZO DZIĘKUJĘ!!! (IMG:style_emoticons/default/yahoo.gif) (IMG:style_emoticons/default/yahoo.gif) (IMG:style_emoticons/default/yahoo.gif)
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: 4.10.2025 - 19:35