А>Пытаюсь передать GET-параметр в скрипт. Пишу в строке браузера:
А>http://myhost.com/newfolder/setup.php?go=forward
А>В index.php делаю echo var_dump($_GET);
А>Получаю только:
А>array(1) { ["url"]=> string(19) "newfolder/setup.php" }
А>Можно как-нибудь в тот же скрипт GET-параметр передать?
А>В любом виде, главное чтобы было.
А>А то решение очень простое и красивое, не хочется искать другое...
<?
function ParseUrl($query_string)
{
global $_GET;
// Разбиваем запрос на две части: сам запрос и параметры
// Запрос без GET: /директория/поддиректория/.../файл/параметр1/значение1/.../параметрN/значениеN/
// Запрос c GET: /директория/поддиректория/.../файл?параметр1=значение1&...&параметрN=значениеN
$query = explode('?', $query_string);
// Обрабатываем запрос, разбивая его по слэшам
$query_string = $query['0'];
$uri_array = explode('/', $query['0']);
// Разбираем запрос: выбираем сам файл и переданные в него параметры. Параметры сохранаяем в GET
for ($i = 0, $count_uri_array = count($uri_array); $i < $count_uri_array; $i++)
{
if ($i == 0)
{
for ($directory = ''; is_dir($directory . $uri_array[$i]); $i++)
{
$directory .= $uri_array[$i] . '/';
}
$file = $uri_array[$i] . '.php';
$this->directory = $directory;
$this->file = $file;
$this->requestedfile = $directory . $file;
}
else
{
$key = $uri_array[$i];
if(!array_key_exists($key, $_GET))
{
$_GET[$key] = urldecode($uri_array[$i + 1]);
}
else
//если пришло несколько одинаковых значений, превращаем в массив
{
if(!is_array($_GET[$key]))
{
$_GET[$key] = array($_GET[$key]);
}
$_GET[$key][] = urldecode($uri_array[$i + 1]);
}
$this->parameters[$key] = $_GET[$key];
$i++;
}
}
// Разбираем параметры GET, пришедшие к нам как нормальные параметры, и обрабатываем их
$request = $query['1'];
$uri_array = explode('&', $request);
for ($i = 0, $count_uri_array = count($uri_array); $i < $count_uri_array; $i++)
{
$uri_array[$i] = explode('=', $uri_array[$i]);
$key = $uri_array[$i]['0'];
if (!array_key_exists($key, $_GET))
{
$_GET[$key] = urldecode($uri_array[$i]['1']);
}
else
//если пришло несколько одинаковых значений, превращаем в массив
{
if(!is_array($_GET[$key]))
{
$_GET[$key] = array($_GET[$key]);
}
$_GET[$key][] = urldecode($uri_array[$i]['1']);
}
$this->parameters[$key] = $_GET[$key];
}
}
?>
немного поправь под свои нужды ))