Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Ścieżka względna dołączonego pliku, jak uzyskać w najprostszy sposób?
WebCM
post
Post #1





Grupa: Zarejestrowani
Postów: 375
Pomógł: 20
Dołączył: 28.07.2006

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


Jak uzyskać ścieżkę względną dołączonego pliku w najprostszy sposób?

  1. dirname(__FILE__)

To nie jest ścieżka względna, tylko absolutna: C:\xampp\katalog\skryptu

Nie ma go także w tablicy $_SERVER, bo ona jest tworzona przed wywołaniem include().

Dla tych, co nie rozumieją:

  1. include 'katalog/skryptu/plik.php';
  2.  
  3. //W pliku katalog/skryptu/plik.php chcę uzyskać ścieżkę: katalog/skryptu/

Po co mi to? Aby wstawić do kodu HTML, np. <script src="">, a tam musi być ścieżka typu katalog/skryptu/
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
WebCM
post
Post #2





Grupa: Zarejestrowani
Postów: 375
Pomógł: 20
Dołączył: 28.07.2006

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


Wykombinowałem na szybko coś takiego - działa tak samo jak z get_included_files:
  1. $dir1 = getcwd(); //katalog skryptu głównego
  2. $dir2 = __DIR__.'/'; //katalog skryptu obecnego + ukośnik
  3. $dir = str_replace('\\', '/', substr($dir2,strlen($dir1)+1));
Jeżeli chcecie ten kod wykorzystać, przetestujcie go, czy działa dla wszystkich możliwych przypadków.

Czy gra warta świeczki? Czy po prostu zabronić użytkownikom skryptu zmiany nazwy katalogu i kazać umieścić go tam, gdzie jest index.php czy tam inny skrypt (zazwyczaj w folderze głównym)? Wierzcie, że nie wszyscy umieją podać właściwą ścieżkę ręcznie.
Go to the top of the page
+Quote Post
darko
post
Post #3





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


Cytat(WebCM @ 26.04.2011, 01:02:09 ) *
Czy po prostu zabronić użytkownikom skryptu zmiany nazwy katalogu i kazać umieścić go tam, gdzie jest index.php czy tam inny skrypt (zazwyczaj w folderze głównym)? Wierzcie, że nie wszyscy umieją podać właściwą ścieżkę ręcznie.

Ustaw jakąś domyślną ścieżkę z możliwością jej zmiany. Co do kodu, to sprawdzałem na linuksie i nie działa, po prostu wyświetla pustą stronę, a nie prościej zrobić tak:
  1. echo substr(dirname($_SERVER['SCRIPT_NAME']) . '/', 1, strlen(dirname($_SERVER['SCRIPT_NAME']) . '/'));

?
// edit
jeszcze krócej:
  1. echo substr(dirname($_SERVER['SCRIPT_NAME']), 1, strlen(dirname($_SERVER['SCRIPT_NAME']))) . '/';


Ten post edytował darko 26.04.2011, 05:30:55
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: 16.09.2025 - 21:44