此代码段工作正常:
$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()
没有按预期工作。我可能做错了什么想法?
答案 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