parse_str()突然无法正常工作

时间:2013-02-22 19:49:58

标签: php string youtube

if($_POST['VIDEO']){
    $video = parse_url($_POST['VIDEO']);
    if($video['host'] == 'www.youtube.com' || $video['host'] == 'youtube.com'){
        $query = parse_str($video['query']);
        $v = $query['v'];
        if(!$v){
            //nothing found
        } else { 
            $videoOutput = 'yt:'.$v;
        }
    }
}

所以我在一个月前制作了这个剧本。完美地工作到昨晚。我不明白为什么。它完美地工作到昨晚。它实际上解析了url,并且主机是有效的。我到达parse_str,一切都突然不起作用。我做了print_r $query并且没有返回数据。如果我echo变量,我得到1。这个文件甚至没有被触及过,所以我不明白它为什么会突然崩溃。

有什么建议吗?

3 个答案:

答案 0 :(得分:4)

语法错误:parse_str不返回任何内容。将$ string解析为名为$ array的数组:

parse_str($string, $array)

答案 1 :(得分:1)

如果您阅读parse_str()的文档,如果您在没有第二个参数的情况下使用它,您将看到它没有返回任何内容(void)。

请改为尝试:

parse_str($video['query'], $query);

if (!$query['v']) {
  ...
}

答案 2 :(得分:0)

根据文档和php.com的样本你必须这样做:

$query = array(); 
parse_str($video['query'],$query);