Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [wyrazenia regularne] Zmienne w themie..., ... z tablicami
bim2
post
Post #1





Grupa: Zarejestrowani
Postów: 1 873
Pomógł: 152
Dołączył: 9.04.2006
Skąd: Berlin

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


Witam. Mam problem. Kombinuje z kumplem jak rozbić sobie np. {ZMIENNE:tablica:tablica2:tablica3...}
Mozna to zrobić funkcja preg_replace_Callback (explode(':'..., układać jak sie da i eval()) ale to jest wolne (IMG:http://forum.php.pl/style_emoticons/default/ohmy.gif)
Dlatego chciałbym spytać się czy ktoś nie zna sposobu na jakieś inne rozbicie tejże zmiennej. (tablic w zmiennej może być w nieskończoność) (IMG:http://forum.php.pl/style_emoticons/default/aarambo.gif) Mnie to przerosło (IMG:http://forum.php.pl/style_emoticons/default/worriedsmiley.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
bim2
post
Post #2





Grupa: Zarejestrowani
Postów: 1 873
Pomógł: 152
Dołączył: 9.04.2006
Skąd: Berlin

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


Wilkie dzieki ;P. Dodałem to do swojego prega i dziala:
  1. <?
  2. function &ArrayGet(&$array, $path)
  3. {  
  4. $retval = null;
  5. $path  = explode(':', $path);
  6.  
  7. foreach ($path as $track)
  8. {
  9. if (!empty($retval)) 
  10. {  
  11. if (isset($retval[$track]))
  12. {  $retval =& $retval[$track];
  13. }
  14. else
  15. {  
  16. $retval = null;
  17. break;
  18. }
  19. }
  20. else
  21. {  $retval =& $array[$track];
  22. }
  23. }
  24.  
  25. return $retval;
  26. }
  27.  
  28. $inf[2][5]='wysmienicie';
  29. $infos[2][5][8][4]='działa';
  30. function zmien($match)
  31. {
  32. global $$match[1];
  33.  
  34. return ArrayGet($$match[1], $match[2]);
  35. }
  36. $test='To {infos:2:5:8:4} {inf:2:5}';
  37. $test=preg_replace_callback("/{([A-Za-z_]*):([A-Za-z0-9:]*)}/", 'zmien', $test);
  38.  
  39. echo $test;
  40. ?>
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: 13.10.2025 - 22:58