Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Tablice w adresie URL.
stroju
post
Post #1





Grupa: Zarejestrowani
Postów: 179
Pomógł: 2
Dołączył: 17.11.2005

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


Hej, chciałbym zapytać czy ktoś kojarzy może funkcję która zmienne w adresie przekształca na tablice, np
Kod
www.google.pl/index.php?a=1&a=4&b=2


Przerobiło na coś takiego:
$a[0] = 1
$a[1] = 4
$b = 2

Jeśli to w ogóle możliwe.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Będziesz musiał ręcznie przetworzyć tę część URL-a. W świecie PHP przyjęte jest, że argumenty tablicowe w URL-ach mają format tablica[klucz], stąd też i wszystkie wbudowane funkcje działają w ten sposób.

  1. function parseQueryString($qs) {
  2. $return = array();
  3.  
  4. if (strpos($qs, '&') === false) {
  5. $qs = array($qs);
  6. } else {
  7. $qs = explode($qs, '&');
  8. }
  9.  
  10. foreach ($qs as $pair) {
  11. if (strpos($pair, '=') === false) {
  12. $return[$pair] = true;
  13.  
  14. continue;
  15. }
  16.  
  17. list($key, $value) = explode($pair, '=', 2);
  18.  
  19. if (!isset($return[$key])) {
  20. $return[$key] = $value;
  21. } else if (is_array($return[$key])) {
  22. $return[$key][] = $value;
  23. } else {
  24. $return[$key] = array($return[$key]);
  25. $return[$key][] = $value;
  26. }
  27. }
  28.  
  29. return $return;
  30. }
Przy czym nie polecam korzystania z takiego kodu. Te nawiasy w absolutnie niczym nie przeszkadzają, a zaoszczędzą Ci masy problemów. W dodatku takie podejście uniemożliwia Ci skorzystanie z wielowymiarowych tablic oraz wymuszać będzie każdorazowe sprawdzanie czy dany parametr z URL-a jest tablicą czy nie.

Ten post edytował Crozin 4.01.2014, 16:27:32
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: 11.10.2025 - 12:18