Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wydobywanie adresu hosta
Forum PHP.pl > Forum > PHP
bruit
W skrypcie PHP chciałbym pobrać źródło strony jako string. Można to zrobić na wiele sposobów, ale dodatkowym warunkiem jest uzyskanie root folderu dla pliku z tym źródłem

Przykład 1:
www.foo.pl/index.php
root folder: www.foo.pl

Przykład 2:
www.foo.pl/bar/index.php
w tym przypadku będzie to www.foo.pl/bar/

Za pomocą cURL udało mi się wyciągnąć nagłówki żądania, jednak żaden z nich nie informuje mnie o tym czego potrzebuję, bo HOST w obu przykładach zawiera "www.foo.pl"

Wydawać by się mogło, że nie jest to nic trudnego, w URL wystarczy znaleźć .php i od niego odnaleźć "/". Jednak problem pojawia się gdy na serwerze jest mod rewrite. Wtedy nie wiadomo co jest częścią ścieżki a co już parametrami żądania.
erix
A zerknij sobie, co masz w $_SERVER. Poszukaj dobrze, znajdziesz wszystko.
wNogachSpisz
parse_url
oraz
basedir lub pathinfo
bruit
Nie do końca o to mi chodziło. Postaram się lepiej wytłumaczyć.
Na początek kawałek mojego skryptu:
CODE

$url = "http://www.foo.pl/bar/index.php";
$handle = fopen($url, "r");
$content = '';
while (!feof($handle)) {
$content .= fread($handle, 8192);
}
fclose($handle);


W tablicy $_SERVER znajdują się informacje o moim serwerze i skrypcie (tym, w którym znajduje się powyższy kod). Więc $_SERVER['HOST'] nie zwróci mi foo.pl tylko mojego hosta.

Hatak.pl ma mod rewrite i posłużę się przykładem tej strony:
http://hatak.pl/news/10126/Anulowany_seria...ow_na_Sundance/

załóżmy, że chciałbym pobrać źródło tej strony i uzyskać informacje o lokalizacji skryptu. W tym przypadku jest to po prostu http://hatak.pl i news.php. W jaki sposób mogę uzyskać taką informację, bo np. gdyby hatak miał ścieżkę

http://hatak.pl/strona/news/10126/Anulowan...ow_na_Sundance/ wówczas interesowałby mnie adres http://hatak.pl/strona/
filka
a może to się przyda
Temat: DNS skrypt sprawdzania nazwy hosta
wookieb
Dostałeś link do parse_url
Nawet nie przejrzałeś...
bruit
Dostałem dostałem. I nawet przejrzałem. Prosty przykład:

URL: http://bleble.pl/a/b/c/d/e/d/g/

$info = parse_url("http://bleble.pl/a/b/c/d/e/d/g/");
print_r ($info);

out:
Array ( [scheme] => http [host] => bleble.pl [path] => /a/b/c/d/e/d/g/ )

wg tego: hostem jest bleble.pl (zgadzam się) ale path? to mi o niczym nie mówi, bo:

a.
http://bleble.pl - host
/a - skrypt
/b/c/d/e/d/g/ - parametry żądania

b.

http://bleble.pl - host
/a - folder na serwerze
/b - skrypt
/c/d/e/d/g/ - parametry żądania

@filka: dzięki za link, potem sprawdzę i dam znać.
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.