Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Losowy wyraz z dwóch plików txt
akat1
post 20.01.2013, 19:50:11
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
 
Start new topic
Odpowiedzi (1 - 10)
Pawel_W
post 20.01.2013, 19:59:58
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 20.01.2013, 20:36:11
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 20.01.2013, 20:41:19
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 20.01.2013, 20:47:28
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 20.01.2013, 21:01:55
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 20.01.2013, 21:06:21
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 20.01.2013, 21:07:57
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 20.01.2013, 21:26:46
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 20.01.2013, 21:31:30
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 20.01.2013, 23:19:00
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 Wersja Lo-Fi Aktualny czas: 18.07.2025 - 01:19