PHP: parsed_str помогите пожалуйста - PullRequest
0 голосов
/ 05 августа 2011

Этот фрагмент отлично работает:

<code>$url="Http://www.youtube.com/watch?v=upenR6n7xWY&feature=BFa&list=PL88ACC6CB00DC2B44&index=4";

$parsed_url=parse_url($url);

echo "<br><br><pre>";
print_r(parse_url($url));
echo "
"; echo $ parsed_url ['query'];

Но когда я добавлю следующее:

<code>echo "<br><br><pre>";
$parsed_str=parse_str($parsed_url['query']);
print_r($parsed_str);
echo "
";

Ничего не происходит.Я подозреваю, что parse_str() не работает должным образом.Есть идеи, что я могу делать не так?

Ответы [ 3 ]

2 голосов
/ 05 августа 2011

Если вы хотите иметь результат parse_str() в массиве, передайте массив в качестве второго аргумента:

parse_str($parsed_url['query'], $parsed_str);

var_dump($parsed_str);

Я предполагаю, что пользователь вводит URL. Если это так, не используйте parse_str без второго аргумента !. Это может привести к угрозе безопасности, когда пользователь может перезаписать произвольные переменные значением по своему выбору.

1 голос
/ 05 августа 2011

В основном, parse_str конвертирует

v=upenR6n7xWY&feature=BFa&list=PL88ACC6CB00DC2B44&index=4

Для

$v = "upenR6n7xWY"
$feature = "BFa"
$list = "PL88ACC6CB00DC2B44"
$index = 4
1 голос
/ 05 августа 2011

parse_str () ничего не возвращает. Заполняет переменные.

Например, если у вас есть строка запроса $ query = "param = 1 & test = 2"

после parse_str ($ запроса);

вы можете проверить var_dump ($ param) и var_dump ($ test) - эти две переменные будут созданы для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...