Zrobiłem sporo poszukiwań, więc przepraszam, jeśli to jest dupe.
W każdym razie potrzebuję uzyskać nazwę folderu, w którym znajduje się bieżący plik. Na przykład chcę przekonwertować coś w rodzaju example.com/folder/subfolder/file.php
na subfolder
.
Mój obecny kod to dirname($_SERVER['PHP_SELF'])
, ale to zwraca /folder/subfolder
zamiast subfolder
. Dziękuję Ci!Uzyskaj folder macierzysty bieżącego pliku PHP
Odpowiedz
Najprostszym sposobem jest:
basename(__DIR__);
Po prostu użyj ..
względny akcesor, który oznacza folder nadrzędny.
Wiem o tym, ale chcę uzyskać nazwę folderu, a nie dostępu do folderu. – Andrey
Ahah, rób co chcesz, ale to wyraźnie podniosłoby czerwoną flagę, gdybym miał cię zatrudnić. Możesz wykonać poprawny projekt bez polegania na całym systemie plików; tylko jego trafność. –
Trzeba połączyć istniejący kod korzystając dirname()
z wezwaniem do basename()
:
$parent = basename(dirname($_SERVER['PHP_SELF']));
dirname()
stosować basename()
będzie działać ... także jeśli chcesz uzyskać do nich wszystko:
$folders = explode ('/', $_SERVER['PHP_SELF']);
Teraz foldery $ zawierają tablicę wszystkich nazw folderów.
Pozdrawiam.
W tym przypadku należy wystrzegać się pustego elementu w indeksie 0, który będzie wynikał ze ścieżki rozpoczynającej się od '/' – DaveRandom
Dobra uwaga - dzięki za dodanie tej myśli. –
@DaveRandom Kolejny powód robienia testów przed uruchomieniem kodu! :) Ale tak, jeśli to denerwuje kogoś, myślę, że jedynym sposobem byłoby użycie regex. – kiradotee
$folder = basename(dirname(__FILE__));
str_replace('/','',$_SERVER[REQUEST_URI]);
wynikowe:
lib/zdjęć /index.php
obrazów
- 1. Powershell Uzyskaj folder nadrzędny pliku
- 2. Uzyskaj nazwę bieżącego środowiska
- 3. Uzyskaj nazwę użytkownika Windows bieżącego użytkownika za pomocą php?
- 4. Uzyskaj wszystkie dni bieżącego tygodnia?
- 5. XNA - Uzyskaj rozdzielczość ekranu bieżącego
- 6. Uzyskaj nazwę hosta bieżącego żądania w pliku node.js Express
- 7. Obiekt macierzysty/potomny obiektu rekurencyjnego PHP
- 8. AJAX/Jquery - Uzyskaj odpowiedź z pliku php
- 9. Zestaw macierzysty dla pliku WPF (okno)
- 10. Uzyskaj nazwę pliku pliku, który działał PHP to
- 11. Selery - Uzyskaj identyfikator zadania dla bieżącego zadania
- 12. Uzyskaj następny rok z bieżącego NSDate?
- 13. Uzyskaj nazwę testu bieżącego w Xunit
- 14. Uzyskaj nazwę bieżącego kontrolera w AngularJS
- 15. PHP Pobierz nazwę bieżącego katalogu
- 16. Uzyskaj adres URL bieżącego skryptu, nawet jeśli jest dołączony?
- 17. Jak usunąć folder i całą jego zawartość z bieżącego katalogu?
- 18. Znajdź nazwę bieżącego pliku konfiguracyjnego
- 19. "Dotknij" bieżącego pliku w emacs
- 20. PHP: Uzyskaj argumenty metody?
- 21. Uzyskaj względną ścieżkę plików w podfolderach z bieżącego katalogu
- 22. Uzyskaj odpowiedź z pliku PHP za pomocą AJAX
- 23. Uzyskaj nazwę zespołu aplikacji WWW, niezależnie od bieżącego zespołu wykonawczego.
- 24. Macierzysty nieskończony zakres?
- 25. Android: MediaRecorder @ Kod macierzysty
- 26. PHP pobiera ścieżkę pliku obrazu?
- 27. Dzielenie bieżącego miesiąca na tygodnie w php
- 28. Tablica PHP zawierająca wszystkie daty bieżącego miesiąca
- 29. Uzyskaj lokalizację pliku JAR
- 30. Uzyskaj klasy nazw PHP dynamicznie
Czy nie powinno to być oznaczone jako poprawna odpowiedź? '$ _SERVER ['PHP_SELF']' może zwrócić plik zawierający "bieżący plik". "Aktualny plik" to __DIR__ w prawo? A może czegoś brakuje? – taylorcressy
@taylorcressy wydaje się, że powyższa odpowiedź została podana przed tym ... również nie używamy magii stałej –
@MarcelDjaman Rozumiem, dlaczego ta druga została oznaczona jako poprawna. Po prostu wyjaśniam, że jest to RZECZYWISTA poprawna odpowiedź. Z technicznego punktu widzenia pierwsza odpowiedź nie jest poprawna we wszystkich przypadkach (tj. W dołączonym pliku) – taylorcressy