0

現在、関数を使用して YouTube ビデオ ID を抽出していますgetYoutubeId。この関数は通常、リンクを解析してそれぞれの ID を見つけます。しかし、入力テキストボックスにphp変数を割り当ててurl、関数に渡し、最終的にIDを抽出するのに問題があります。URL をテキスト ボックスに貼り付けると、ビデオ ID がエコーされるか、何も表示されません。以下に例を示します:モックアップ サイト

    <input type="text" name="youtube" value="<? $sYoutubeUrl ?>">
    <input type="submit" value="Parsen">


    <?

    function getYoutubeId($sYoutubeUrl) {

        # set to zero
        $youtube_id = "";
        $sYoutubeUrl = trim($sYoutubeUrl);

        # the User entered only the eleven chars long id, Case 1
        if(strlen($sYoutubeUrl) === 11) {
            $youtube_id = $sYoutubeUrl;
            return $sYoutubeUrl;
        }

        # the User entered a Url
        else {

            # try to get all Cases
            if (preg_match('~(?:youtube\.com/(?:user/.+/|(?:v|e(?:mbed)?)/|.*[?&]v=)|youtu\.be/)([^"&?/ ]{11})~i', $sYoutubeUrl, $match)) {
                $youtube_id = $match[1];
                return $youtube_id;
            }
            # try to get some other channel codes, and fallback extractor
            elseif(preg_match('~http://www.youtube.com/v/([A-Za-z0-9\-_]+).+?|embed\/([0-9A-Za-z-_]{11})|watch\?v\=([0-9A-Za-z-_]{11})|#.*/([0-9A-Za-z-_]{11})~si', $sYoutubeUrl, $match)) {

                for ($i=1; $i<=4; $i++) {
                    if (strlen($match[$i])==11) {
                        $youtube_id = $match[$i];
                        break;
                    }
                }
                return $youtube_id;
            }
            else {
                $youtube_id = "No valid YoutubeId extracted";
                return $youtube_id;
            }
        }
    }

   echo (getYoutubeId($sYoutubeUrl));

    ?>
4

1 に答える 1

1

次のように、入力タグをフォーム内に配置する必要があります。

<form action="" method="POST">
  <input type="text" name="youtube" value="" />
  <input type="submit" value="Parsen" />
</form>

次に、フォームが送信されたかどうかを確認し、情報を表示します。

?>

if(isset($_POST['youtube'])){

  // include that function here

  print 'Result: ' . getYoutubeId($_POST['youtube']);
}

parse_url()正規表現の代わりに、URL からビデオ ID を取得するために使用することを検討してください。

于 2013-02-09T20:23:45.603 に答える