Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Losowe wyrazy
-Krzych00-
post
Post #1





Goście







Witam,
Właściwie nie potrzebuję kodu, a pomyslu na wykonanie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Mam taki kodzik:
  1. <?php
  2. $wzor = "{Hej|Czesc}{Tomek|Adam}";
  3.  
  4. function losuj($wzor) {
  5. preg_match_all("/{(.+?)}/", $wzor, $data);
  6. print_r ($data);
  7. $i = count ($data[1]);
  8. for ($x = 0; $x <= $i-1; $x++) {
  9. $tmp = explode('|', $data[1][$x]);
  10. $ile = count($tmp);
  11. $iles = rand(0, $ile-1);
  12. print $tmp[$iles];
  13. }
  14.  
  15. }
  16. losuj($wzor);
  17. ?>

Skrypt ma za zadanie losowanie ze wzorca odpowiednych wyrazow i ich zwracanie. Tu zwróci na przyklad CzescAdam. Chcialbym jednak dopisać do skryptu zagnieżdżenia, np dla:
  1. <?php
  2. $wzor = "{Hej|Czesc}{Tomek{Kowalski|Nowak}|Adam{Adamczyk|Lepper}}";
  3. ?>

CzescAdamAdamczyk badź HejAdamLepper. Nie wiem jak sobie poradzić z zagnieżdżeniem "{}". Jakieś pomysły? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
no_face
post
Post #2





Grupa: Zarejestrowani
Postów: 346
Pomógł: 23
Dołączył: 28.11.2004

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


  1. <?php
  2. $wzor = "{Powitanie w roznych wariantach}{Imiona w roznych wariantach}{nazwiska w ro
    znych wariantach}"
    ;
  3. ?>

np

  1. <?php
  2. $wzor = "{Hej|Czesc}{Tomek|Jurek|Adam}{Adamczyk|Lepper|Kaczynski}";
  3. ?>


Przebuduj troche kod, a bedziesz mogl korzystac z wiekszej ilosci mozliwosci

Polecam jednak zastosowac tablice jak poprzednik wspomnial, czy to tablice jednowymiarowa

  1. <?php
  2. $wzor = array('Hej|Czesc', 'Tomek|Jurek|Adam', 'Adamczyk|Lepper|Kaczynski');
  3. ?>


czy wielowymiarowa:

  1. <?php
  2. $wzor = array(
  3.  array('Hej', 'Czesc'),
  4.  array('Tomek', 'Jurek', 'Adam'),
  5.  array('Adamczyk', 'Lepper', 'Kaczynski')
  6.  );
  7. ?>


Stosujac petelke do poruszania sie po tablicach w polaczeniu z rand(); uzyskasz zadany efekt
Go to the top of the page
+Quote Post

Posty w temacie


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: 3.10.2025 - 20:40