Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Losowanie frazy, Losowanie frazy w języku PHP
Grzegorz_Gie
post 2.11.2011, 19:56:40
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 2.11.2011
Skąd: Warszawa

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


Mój kolejny post, tym razem chciałbym zapytać o losowanie frazy z zewnętrznego pliku.

Napisałem odpowiedni kod w HTMLu z lekką pomocą PHP ale mankament jest taki, że zaglądając do źródła strony widzimy to co zostało wylosowane + całą "tablicę" z której losowano.

W jaki sposób się zabrać do napisania tablicy, która losuje frazę z pliku zewnętrznego w którym każda fraza zaczyna się od nowej linii?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
Rewil
post 2.11.2011, 20:15:38
Post #2





Grupa: Zarejestrowani
Postów: 175
Pomógł: 0
Dołączył: 19.09.2009

Ostrzeżenie: (10%)
X----


Może jakiś kod? Bo trochę dziwnę, że używasz lekkiej pomocy PHP...

Z funkcji co powinieneś wiedzieć (według mojej domyślonej ideologi twojego skryptu), to rand i oddzielanie nowej lini to '\n', wrzucanie do tablic.
Go to the top of the page
+Quote Post
peter13135
post 2.11.2011, 20:37:24
Post #3





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

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


  1. <?php echo array_rand(file('frazy.txt')) ?>


--------------------
:)
Go to the top of the page
+Quote Post
Grzegorz_Gie
post 2.11.2011, 20:50:42
Post #4





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 2.11.2011
Skąd: Warszawa

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


  1. <script type="text/javascript">
  2. // <![CDATA[
  3. Array.prototype.random = function(limit)
  4. {
  5. if (typeof limit == 'undefined' || limit < 0) limit = 1;
  6. else if (!limit) limit = this.length;
  7. for (var i = 0, source = this, target = new Array(), n = source.length; i < limit && n > 0; i++)
  8. {
  9. do { var index = Math.random(); } while (index == 1);
  10. index = Math.floor(index * n);
  11. target.push(source[index]);
  12. source[index] = source[--n];
  13. }
  14. return target;
  15. }
  16.  
  17. document.write(new Array(
  18. <?php
  19. $plik = file_get_contents('plik_1.txt');
  20. echo $plik;
  21. ?>
  22. ,
  23. <?php
  24. $plik = file_get_contents('plik_2.txt');
  25. echo $plik;
  26. ?>
  27. ).random(10).join(''));
  28.  
  29. // ]]>
  30. </script>


Teraz jak wiem trochę więcej to orientuje się, że można includować zamiast wczytywać w ten sposób jak ja to tutaj robię.

Za chwilę sprawdzę skrypt kolegi @up i odpowiem.

@edit
peter13135, super działa.
Z tego co doczytałem to funkcja, którą napisałeś losowanie ma domyślnie ustawione na 1.
Jak napiszę w ten sposób to będzie losować bez powtarzania X elementów zamiast jak niżej 10?

  1. <?php echo array_rand(file('frazy.txt, 10')) ?>




Ten post edytował Grzegorz_Gie 2.11.2011, 20:57:04
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: 31.07.2025 - 10:50