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 16.08.2009, 16:29:08
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ź smile.gif


--------------------
Go to the top of the page
+Quote Post
Berg
post 16.08.2009, 16:39:40
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 winksmiley.jpg
Go to the top of the page
+Quote Post
Pawel_W
post 16.08.2009, 16:44:35
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 winksmiley.jpg

includowanie a pobieranie do zmiennej to 2 różne rzeczy 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 16.08.2009, 16:48:12
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ć winksmiley.jpg
Go to the top of the page
+Quote Post
Pawel_W
post 16.08.2009, 16:50:22
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 haha.gif
Go to the top of the page
+Quote Post
janekpogwad
post 16.08.2009, 16:56:37
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 16.08.2009, 16:59:18
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 16.08.2009, 16:59:37
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
winksmiley.jpg
Go to the top of the page
+Quote Post
Pawel_W
post 16.08.2009, 17:03:09
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 haha.gif
5. Zapisujesz - file_put_contents

myślę, że wyraziłem się jasno 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 haha.gif
Go to the top of the page
+Quote Post
Fifi209
post 16.08.2009, 17:06:07
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.


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
Pawel_W
post 16.08.2009, 17:08:27
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 winksmiley.jpg w takim razie wszystko ok
Go to the top of the page
+Quote Post
Berg
post 16.08.2009, 17:10:00
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 tongue.gif
Go to the top of the page
+Quote Post
janekpogwad
post 16.08.2009, 17:10:32
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. winksmiley.jpg


--------------------
Go to the top of the page
+Quote Post
Pawel_W
post 16.08.2009, 17:16:19
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 winksmiley.jpg jeszcze raz przepraszam, że tak namieszałem winksmiley.jpg
Go to the top of the page
+Quote Post
janekpogwad
post 16.08.2009, 17:21:18
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 haha.gif
5. Zapisujesz - file_put_contents

myślę, że wyraziłem się jasno 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(). winksmiley.jpg

Ten post edytował janekpogwad 16.08.2009, 17:21:43


--------------------
Go to the top of the page
+Quote Post
Pawel_W
post 16.08.2009, 17:27:30
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 16.08.2009, 17:43:20
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 sad.gif


--------------------
Go to the top of the page
+Quote Post
Fifi209
post 16.08.2009, 17:59:07
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)


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
janekpogwad
post 16.08.2009, 18:01:37
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 16.08.2009, 18:06:46
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ę.


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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 Wersja Lo-Fi Aktualny czas: 19.05.2025 - 06:29