PHP:parse_str请帮忙

时间:2011-08-05 03:50:22

标签: php string

此代码段工作正常:

$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 "</pre>";
echo $parsed_url['query'];

但是当我添加以下内容时:

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

什么都没发生。我怀疑parse_str()没有按预期工作。我可能做错了什么想法?

3 个答案:

答案 0 :(得分:2)

如果要在数组中得到parse_str()的结果,请将数组作为第二个参数传递:

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

var_dump($parsed_str);

我将假设用户输入了URL。如果是这样,在没有第二个参数的情况下不使用parse_str !这样做会导致安全风险,用户可以用自己选择的值覆盖任意变量。

答案 1 :(得分:1)

parse_str()不返回任何内容。它填充变量。

例如,如果您的查询字符串为$ query =“param = 1&amp; test = 2”

后 parse_str($查询);

你可以检查var_dump($ param)和var_dump($ test) - 这两个变量将为你创建。

答案 2 :(得分:1)

基本上,parse_str转换

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

$v = "upenR6n7xWY"
$feature = "BFa"
$list = "PL88ACC6CB00DC2B44"
$index = 4