Forum Webscript.Ru
Программирование => PHP => Тема начата: MrGreeN от 18 Апреля 2003, 15:12:02
-
К примеру-----
$list=$_SERVER[\'PHP_SELF\'];
$host=$HTTP_SERVER_VARS[\'HTTP_HOST\'];
$longname=array("$host","$list");
$longfilename=implode(\'/\',$longname);
echo $longfilename;
Выводит host//path_to_file
magic_quotes_gpc=Off
magic_quotes_runtime=Off
(с базой я вообще не работаю)
Интерестно ещё то, что если отдельно выводить $list и отдельно $host то усё путём...
-
$list уже содержит слэш вначале. будьте внимательнее!
Кстати, интересный кусок кода..
Почему для инициализации $list используеться $_SERVER
а для $host - $HTTP_SERVER_VARS
правильнее было бы записать так
$host = $_SERVER[\'HTTP_HOST\'];
-
Насчёт $HTTP_SERVER_VARS, согласен (хотя в пхп 4 наследование ентого дела из 3 го насколько я знаю существует), проблема не в этом...
$list слешей не содержит (и проверено и доказано переменными окружения в пхп.ини)...
Если кто-то и добавляет их, то это implode();
Сформировать такую строку (без появления левых слешей) можно при помощи urlencode() без особых проблем ( так в последнее время и делаю)...
Просто интерестно в чём бок и как от него избавиться...:)
-
MrGreeN
неверно! D1g174LM4n14c твой левый слэш нашел правильно... переменная PHP_SELF содержит начинающий слэш всегда, вот оттуда он и возникает
/temp/phpinfo.php
а urlencode к формированию строк не имеет никакого отношения.... если уж мешает слэш то чтоб долго не париться str_replace("//","/",$slashes)
-
я не понимаю, зачем вообще implode() использовать для двух строк?
весь вышеприведенный код можно было переписать намного проще:
// $list=$_SERVER[\'PHP_SELF\'];
// $host=$HTTP_SERVER_VARS[\'HTTP_HOST\'];
// $longname=array("$host","$list");
// $longfilename=implode(\'/\',$longname);
// echo $longfilename;
echo $_SERVER[\'HTTP_HOST\'] . $_SERVER[\'PHP_SELF\'];
ENJOY!
-
D1g174LM4n14c:
echo $_SERVER[\'HTTP_HOST\'] . $_SERVER[\'PHP_SELF\'];
Гы, гы.... мне надо не выводить строку, а формировать её для посылки в хедер (для того же и использую urlenncode())
Но со слешом слева согласен (просто перепутал две переменные, подумал что речь идёт о хосте а не о пути)
semya
За
str_replace("//","/",$slashes); спасибо но за каждым разом так же вырезать их не будешь...Зачем же тогда я magic_quotes_gpc отключил...
Хозйке на заметку ----
Если слеши не //// а \\\\\\\\ то чтобы их обнаружить их нужно указывать вдвое больше.....Вот так...
-
MrGreeN:
Гы, гы.... мне надо не выводить строку, а формировать её для посылки в хедер (для того же и использую
Гы, гы... $path=$_SERVER[\'HTTP_HOST\'] . $_SERVER[\'PHP_SELF\'];
-
вот-вот...
-
Ну ладно ладно уболтали.... (Гы гы...);)
Значица magic_quotes_gpc тута не причём... (а жаль...)