Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]URI z pominięciem ścieżki do aplikacji
czychacz
post 6.10.2016, 16:05:25
Post #1





Grupa: Zarejestrowani
Postów: 189
Pomógł: 13
Dołączył: 20.09.2008
Skąd: Lublin

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


Poniższy kod zwraca mi
/param1/val1/param2/val2/param3/param4/z
dla url
http://localhost/f/param1/val1/param2/val2/param3///param4/z
gdzie DOCUMENT_ROOT to
c:\htdocs\f
  1. $documentRoot = $_SERVER['DOCUMENT_ROOT'];
  2. $documentRootPath = explode('/', $documentRoot);
  3.  
  4. $dir = explode(DIRECTORY_SEPARATOR, __DIR__);
  5. array_pop($dir);
  6.  
  7. do {
  8. $l = array_shift($documentRootPath);
  9. $r = array_shift($dir);
  10. } while ($l === $r && (count($documentRootPath) > 0) || (count($dir) > 0));
  11.  
  12. if (empty($r) === false) {
  13. $dir = array_merge([$r], $dir);
  14. }
  15.  
  16. $requestURI = $_SERVER['REQUEST_URI'];
  17. $requestURIExpl = array_filter(explode('/', $requestURI), function ($val) {
  18. return empty($val) === false;
  19. });
  20.  
  21. do {
  22. $l = array_shift($requestURIExpl);
  23. $r = array_shift($dir);
  24. } while ($l === $r && (count($requestURIExpl) > 0 || empty($l) === false));
  25. if (empty($l) === false) {
  26. $requestURIExpl = array_merge([$l], $requestURIExpl);
  27. }
  28.  
  29. return '/' . implode('/', $requestURIExpl);


Pomijam problem z tym, że nie zwraca mi dwóch parametrów, które są puste.
Czy da się to zapisać krócej, bez używania takiego kolosa? Chodzi o to, żeby zwrócony URI pozbawiony był początkowej ścieżki do katalogu aplikacji.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 06:09