Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Losowy wyraz z dwóch plików txt
akat1
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 20.01.2013
Skąd: Kraków

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


Mam dwa pliki "txt", w których każda linia to jeden wyraz. Jak napisać kod, który będzie losowo dobierał - powiedzmy - 4 wyrazy z tych dwóch plików.

Proszę o pomoc.
Go to the top of the page
+Quote Post
Pawel_W
post
Post #2





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

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


file + array_rand
Go to the top of the page
+Quote Post
akat1
post
Post #3





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 20.01.2013
Skąd: Kraków

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


Rozumiem, ale jak umieścić dwa pliki w tablicy. Wybaczcie za pytanie, ale jestem tutaj nowy.

Przygotowałem taki kod, ale nie wiem jak wgrać kilka plików do tablicy.

  1. <?php
  2. $plik_do_odczytu = file("czasowniki.txt");
  3. $los_wyraz = array_rand($plik_do_odczytu, 3);
  4. echo $plik_do_odczytu[$los_wyraz[0]];
  5. echo $plik_do_odczytu[$los_wyraz[1]];
  6. echo $plik_do_odczytu[$los_wyraz[2]];
  7. ?>


Ten post edytował akat1 20.01.2013, 20:36:48
Go to the top of the page
+Quote Post
Michael2318
post
Post #4





Grupa: Zarejestrowani
Postów: 651
Pomógł: 116
Dołączył: 3.06.2012
Skąd: Lędziny

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


Ja bym to zrobił tak:

  1. <?php
  2. $losujemy_plik = rand(1,2);
  3. $plik = 'tekst_'.$losujemy_plik.'.txt';
  4. $dane = file($plik);
  5. $liczba_linii = count($dane);
  6. $losowa_linia = rand(1,$liczba_linii);
  7. echo $dane[($losowa_linia-1)];
  8.  
  9. ?>


gdzie pliki z tekstem nazywają sie kolejno: tekst_1.txt i tekst_2.txt.

Ten post edytował Michael2318 20.01.2013, 20:46:41
Go to the top of the page
+Quote Post
akat1
post
Post #5





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 20.01.2013
Skąd: Kraków

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


Dzięki wielce. Jeśli dobrze rozumiem skrypt najpierw losuję plik, a potem dopiero słowa. Natomiast chciałbym przygotować taki: w którym słowa są losowane z zawartości dwóch plików.
Go to the top of the page
+Quote Post
Michael2318
post
Post #6





Grupa: Zarejestrowani
Postów: 651
Pomógł: 116
Dołączył: 3.06.2012
Skąd: Lędziny

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


Nie widze w tym większej różnicy. Efekt będzie taki sam - wyświetlona zostanie linia albo z jednego pliku albo z drugiego - marudzisz.
Go to the top of the page
+Quote Post
akat1
post
Post #7





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 20.01.2013
Skąd: Kraków

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


Wiesz, chcę dodać kilka plików, nie tylko dwa. Wtedy będzie to różnica.
Go to the top of the page
+Quote Post
Michael2318
post
Post #8





Grupa: Zarejestrowani
Postów: 651
Pomógł: 116
Dołączył: 3.06.2012
Skąd: Lędziny

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


Zwiększ zakres w rand'zie po prostu i tyle.
Go to the top of the page
+Quote Post
akat1
post
Post #9





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 20.01.2013
Skąd: Kraków

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


A czy jest możliwość dodania zawartości kilku plików do jednej tablicy?
Go to the top of the page
+Quote Post
koreja
post
Post #10





Grupa: Zarejestrowani
Postów: 120
Pomógł: 22
Dołączył: 15.07.2008
Skąd: Raniżów/Rzeszów

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


  1. $dane = array();
  2. foreach(glob('*.txt') as $file) {
  3. $plik_do_odczytu = file($file);
  4. $dane = array_merge($dane, $plik_do_odczytu);
  5. }
  6. $los_wyraz = array_rand($dane, 3);
  7. echo $dane[$los_wyraz[0]];
  8. echo $dane[$los_wyraz[1]];
  9. echo $dane[$los_wyraz[2]];

Gdize w pętli pobierasz pliki txt z aktualnego katalogu.

Ten post edytował koreja 20.01.2013, 21:33:35
Go to the top of the page
+Quote Post
akat1
post
Post #11





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 20.01.2013
Skąd: Kraków

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


Dzięki za pomoc! O to właśnie mi chodziło!!!

Go to the top of the page
+Quote Post

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 Aktualny czas: 21.08.2025 - 21:51