0
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. 这个文件还没有被动过,所以我不明白为什么它会突然坏掉。

有什么建议么?

4

3 回答 3

5

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

parse_str($string, $array)
于 2013-02-22T19:53:40.447 回答
1

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

试试这个:

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

if (!$query['v']) {
  ...
}
于 2013-02-22T19:53:16.453 回答
0

根据 php.com 的文档和示例,您必须这样做:

$query = array(); 
parse_str($video['query'],$query);
于 2013-02-22T20:16:24.683 回答