![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 999 Pomógł: 30 Dołączył: 14.01.2007 Skąd: wiesz ? Ostrzeżenie: (0%) ![]() ![]() |
Już nie mam pomysłu na to.
Ze względu na konieczność zastosowania mod_rewrite muszę generować linki a do tego potrzebna jest mi domena. Tylko co jeśli strona znajduje się w podkatalogu jak mam to sprawdzić ? Wiem że jest to niewielki problem jednak chciałbym żeby skrypt wykrywał to automatycznie, bez konieczności ręcznego wpisywania domeny i podkatalogu. Przykładowo przy użyciu mod_rewrite mam coś takiego DocumentRoot mam ustawiony na D:\WWW natomiast stronę z której wywołuję ten skrypt mam w podkatalogu strona przez htaccess przekierowałem zapytanie do pliku w kolejnych podkatalogach test link: http://localhost/strona/rewrite/htfytfyutf Cytat 'QUERY_STRING' => '' Tknęło mnie coś teraz i pomyślałem że można by zrobić to tak.'REQUEST_URI' => '/strona/rewrite/htfytfyutf' 'SCRIPT_NAME' => '/strona/test/test/index.php' 'PHP_SELF' => string '/strona/test/test/index.php' Kod 'DOCUMENT_ROOT' => 'D:/WWW' Za pomocą strlen() sprawdzić długość DOCUMENT_ROOT i'SCRIPT_FILENAME' => 'D:/WWW/strona/test/test/index.php' 'REQUEST_URI' => '/strona/rewrite/htfytfyutf' od tego miejsca wyciąć SCRIPT_FILENAME ( zostało by /strona/test/test/index.php ) tylko nie wiem jeszcze jak mam porównać SCRIPT... z REQUEST_URI żeby zostało samo strona. Jakieś pomysły ? Ten post edytował orglee 5.09.2007, 23:55:16 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 233 Pomógł: 9 Dołączył: 3.06.2007 Ostrzeżenie: (0%) ![]() ![]() |
porównuj kolejne znaki tych ciągów ze sobą
jeśli znak na którejś pozycji zgadza się z drugim ciągiem dopisz go do jakiejś zmiennej jeśli wszystko cały czas będzie się zgadzać i dojdziesz do slasha to będziesz miał to swoje "strona" jeśli przed dojściem do slasha nastąpi różnica musisz zostać na poprzednim katalogu trochę zmienie Twoje SCRIPT_FILENAME i obetne o to o co powiedziałeś... Kod 'CIAG' => '/strona/retest/test/index.php' 'REQUEST_URI' => '/strona/rewrite/htfytfyutf' zrobimy coś na wzór algorytmu Kod $tmp=''; //pierwszy(/) znak się zgadza i doszliśmy do slasha bo znak jest slashem $katalog_docelowy .= $tmp.'/'; $tmp='';//zerowanie $tmp //drugi znak się zgadza $tmp.='s';//kolejne znaki podobnie, $tmp zawiera wartość "strona" //doszliśmy do slasha $katalog_docelowy .= $tmp.'/'; //$katalog_docelowy zawiera /strona/ $tmp=''; //kolejna się zgadza $tmp.='r';// potem dopisujemy e //dalej się nie zgadza więc wrzucamy return i $katalog_docelowy zostaje jaki był... czyli /strona/ mam nadzieję że dobrze zrozumiałem Twój problem i dobrze przedstawiłem Ci moją ideę EDIT: dobra trochę za bardzo kombinuję:
Ten post edytował zimi 6.09.2007, 10:17:24 |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 999 Pomógł: 30 Dołączył: 14.01.2007 Skąd: wiesz ? Ostrzeżenie: (0%) ![]() ![]() |
No domyślam się że należu je teraz porównać pytanie tylko jest jak ?
Nie ma innej metody niż użycie warunków i nawiasów klamrowych {} ? |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 233 Pomógł: 9 Dołączył: 3.06.2007 Ostrzeżenie: (0%) ![]() ![]() |
zedytowałem poprzedni post, zobacz...
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 999 Pomógł: 30 Dołączył: 14.01.2007 Skąd: wiesz ? Ostrzeżenie: (0%) ![]() ![]() |
Dziękuję ci bardzo zimi
![]()
http://localhost/test/getDomain.php Wynik: http://localhost/test/ http://localhost/getDomain.php Wynik: http://localhost/ mod_rewrite - przekierowanie z katalogu strona na podkatalog test http://localhost/strona/afafdadfadfadfdaf Wynik: http://localhost/strona/ Będzie tylko problem z przekierowanie na podkatalog przy mod_rewrite (ex. z D:\WWW\strona na D:\WWW\ ) ponieważ w SCRIPT_FILENAME jest ścieżka do wykonywanego pliku. Czyli w tym przypadku było by to D:\WWW\plik.php, ale z tym akurat da się żyć ![]() Ten post edytował orglee 6.09.2007, 13:46:35 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 233 Pomógł: 9 Dołączył: 3.06.2007 Ostrzeżenie: (0%) ![]() ![]() |
małe sugestie
1. strrpos" title="Zobacz w manualu PHP" target="_manual 2. zamiast
w zupełności starczy:
Natomiast reszta Twojego postu (czyli oprócz kodu i podziękowania ![]() ![]() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 24.07.2025 - 17:10 |