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;
        }
    }
}

そのため、このスクリプトは約1か月前に作成しました。昨夜まで完璧に働いた。理由がわかりません。昨夜まで完璧に動作します。実際には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()のドキュメントを読むと 、2 番目の引数なしで使用すると何も返さない (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 に答える