Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dynamiczna lokalizacja pliku
Forum PHP.pl > Forum > PHP
Gabrielx
Witam.
Wyobrazcie sobie taka sytuacje. Mamy drzewo plików.
  • engine/save/user


Skrypt który odwołuje się do lokalizacji znajduję się w engine/.
Więc aby odwołać się do pliku w user muszę robić to tak:

  • engine/save/user/plik.txt


Jak zrobić tak aby odwołanie do lokalizacji wyglądało user/plik.txt, gdzie user się zmienia na nazwę użytkownika. Będę korzystał z hostingu wirtualnego, nie dedyka.
sebastian.rozmus
Jak rozumiem chodzi Ci o adres w przeglądarce. Musisz użyć htaccess

RewriteEngine On
rewritecond %{http_host} ^www.twojastrona.pl [nc]
rewriterule ^(.*)$ http://www.twojastrona.pl/engine/save/$1[r=301,nc]

pisane z głowy i nie testowane, ale powinno działać
Gabrielx
A jeśli np. będę mieć plik który ma scierzkę user/images/img.png to czy bd się odwoływać do niego w taki sposób (odwołanie nastąpi z pliku engine/index.php i w tym się bd wyswietlał dany kod. Mam na myśli to że chce w tak jakbym template pisać odwołanie jako images/img.png a nie save/user/images/img.png):

images/img.png

czy taki:

save/user/images/img.png
sebastian.rozmus
Nie bardzo rozumiem wink.gif

Chodzi o takie przkierowania:

www.[..].pl/images/* => public_html/save/user/images/*
www.[..].pl/* => public_html/save/user/*

jakbyś mógł to jakoś lepiej opisać wink.gif
maniana
Do automatycznego ładowanie skryptów istnieją mechanizmy spl_autoload_register lub set_include_path. Raczej nie polecam robienia bałaganu i wgrywanie plików tam gdzie popadnie smile.gif Pliki niech będą sobie w jakimś drzewku ale jakoś logicznie zaprojektowanym.
Gabrielx
Jeszcze raz smile.gif

Plik index.php znajdujący się w głównym katalogu.

save/user/images/img.png

save/user/index.html

index.html -> img src="images/img.png"
lecz
index.html jest uruchamiwany / wczytywany w pliku index.php. tj.

  1. <?php echo "ala ma kota";
  2. ?>
  3. index.html <--- zawartosc pliku html


I jesli jest uruchamiany w pliku index.php, to muszę się odwoływać do pliku img.png w taki sposob img src = "save/user/images/img.png" (o ile w ogole w kodzie index.html jakies odwolanie do pliku istnieje)
sebastian.rozmus
Stwórz w głównym katalogu plik .htaccess a w nim:

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-s
RewriteRule ^(.*)$ /engine/save/user/$1

Nie jestem specem od htaccess, ale chyba będzie działało. Wtedy dajesz <img src="images/img.png" />
Gabrielx
ok, dziękuję zaraz sprawdze.

A co jeśli user jest zmienny?

Oraz jak to w kodzie php bd wygladalo po lepkach smile.gif bo od htacces rowniez specem nie jestem.
sebastian.rozmus
A to jeśli user jest zmienny to trochę komplikuje wink.gif myślałem że 'user' jest stałym folderem. Można to rozwiązać na dwojaki sposób.

1) zamiast 'images/aaa.png' dać 'user/images/aaa.png'

albo

2) przekierować to na plik php który będzie wyrzucał konkretne pliki na wyjście

Wybierz sposób to pomogę wink.gif
Gabrielx
Raczej ten drgui sposob, bo mi zalezy na images/aaa.png.

Moglbys opisac co masz na mysli? smile.gif
sebastian.rozmus
Przekierowywujesz żądania na plik php:

  1. RewriteEngine on
  2. RewriteBase /
  3. RewriteCond %{REQUEST_FILENAME} !-d
  4. RewriteCond %{REQUEST_FILENAME} !-s
  5. RewriteRule ^(.*)$ getFile.php?file=$1


Tworzysz plik getFile.php. W $_GET['file'] masz ścieżkę do pliku. Sprawdzasz tam usera. Za pomocą header ustalasz typ mime i "wypluwasz" zawartość pliku. Jutro mogę wkleić gotowca wink.gif
Gabrielx
Dziękuję bardzo smile.gif jakbys mogl to tak smile.gif ja cos pokombinuje teraz poki senny nei jestem, i jak cos to jutro porownam z Twoim gotowcem.
Na prawde dziekuje smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.