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%)
-----


W takim razie zastosuj dodatkowe znaki (niewystepujace w ciagu), ktorymi posluzysz sie przy wydzielaniu zagniezdzen, np

Kod
{Hej|Czesc}{Tomek>Kowalski|Nowak}{Adam>Adamczyk|Lepper}

Pozniej:
- dzielisz wszystko pregiem {}
- splitujesz ciag 'Tomek>Kowalski|Nowak' znakiem '>'
- otrzymujesz 'Tomek' i 'Kowalski|Nowak'
- z lewej masz imie, teraz tylko splitujesz 'Kowalski|Nowak' i randujesz nazwiska
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 - 15:53