Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Parsowanie tekstu, który może być tablicą, bez użycia funkcji
Sebusik
post
Post #1





Grupa: Zarejestrowani
Postów: 47
Pomógł: 1
Dołączył: 29.01.2011

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


Witajcie (IMG:style_emoticons/default/wink.gif)

Być może tytuł niewiele mówi, jednak zupełnie nie wiem, jak określić mój problem.

Posłużę się przykładem zmiennej $_GET. Jest to tablica, w której są wartości, ale te wartości mogą być również tablicą. I jak takie coś sparsować? Posłużę się przykładem:
  1. foreach($_GET as $name => $value)
  2. {
  3. $value = trim($value);
  4. {
  5. $value = stripslashes($value);
  6. }
  7.  
  8. $jakas_zmienna[$name] = $value;
  9. }


Teraz problemu nie ma, bo wartości (w założeniu) nie przyjmują tablicy. Jednak, gdyby wartość była tablicą... To już nie znam za bardzo dobrego sposobu, jak się zabrać za parsowanie tego.
Sposoby znam 2, jednak żaden mi nie odpowiada. Pierwszy, to taki, w którym kod powtarza się dwukrotnie:
  1. foreach($_GET as $name => $value)
  2. {
  3. if(is_array($value))
  4. {
  5. foreach($value as $subname => $subvalue)
  6. {
  7. $subvalue = trim($subvalue);
  8. {
  9. $subvalue = stripslashes($subvalue);
  10. }
  11.  
  12. $value[$subname] = $subvalue;
  13. }
  14. }
  15. else
  16. {
  17. $value = trim($value);
  18. {
  19. $value = stripslashes($value);
  20. }
  21. }
  22.  
  23. $jakas_zmienna[$name] = $value;
  24. }


Rozwiązanie, którego od środka nie potrafię zaakceptować (IMG:style_emoticons/default/smile.gif)
Drugie to takie, z zastosowaniem funkcji:
  1. function parser($data)
  2. {
  3. if(is_array($data))
  4. {
  5. foreach($data as $name => $value)
  6. {
  7. $data[$name] = parser($value);
  8. }
  9.  
  10. return $data;
  11. }
  12.  
  13. $data = trim($data);
  14. {
  15. $data = stripslashes($data);
  16. }
  17.  
  18. return $data;
  19. }
  20.  
  21. $jakas_zmienna = parser($_GET);


Jednak tworzenie funkcji też za bardzo nie jest mi na rękę.
I tutaj pytanie. Czy wpadł ktoś kiedyś na pomysł, jak rozwiązać powyższy problem z wartościami, które mogą być tablicą, bez stosowania dwa razy tego samego kodu, oraz bez stosowania funkcji? Jeżeli ktoś się podzieli tą wiedzą będę bardzo wdzięczny (IMG:style_emoticons/default/smile.gif)

Pozdrawiam.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




array_walk_recursive
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: 12.10.2025 - 06:22