0

我一直在研究从 YouTube URL 获取 ID 的功能。该功能有效,其中;

Function getYouTubeID($URL){
    $YouTubeCheck = preg_match('![?&]{1}v=([^&]+)!', $URL . '&', $Data);
    If($YouTubeCheck){
        $VideoID = $Data[1];
        Echo $VideoID;
    }
}

唯一对我不起作用的部分是当我试图在表单提交时调用它;

<form action="<?php If(IsSet($_POST['submit'])){ 
              If(!$_POST['video_id'] == NULL){
                  $VideoID = getYouTubeID($_POST['video_url']); 
                  Header('Location: /watch?v='.$VideoID); }} ?>" method="POST">

我可以在它自己的文件(test.php)中调用该函数;

Function getYouTubeID($URL){
    $YouTubeCheck = preg_match('![?&]{1}v=([^&]+)!', $URL . '&', $Data);
    If($YouTubeCheck){
        $VideoID = $Data[1];
        Echo $VideoID;
    }
}

getYouTubeID('http://www.youtube.com/watch?v=example');

这将返回“示例”,但是,如前所述,我无法通过表单提交来调用它,甚至无法尝试包含它(包括'filewiththefunction.php')。

非常感谢任何帮助,并感谢您的时间。

4

1 回答 1

2

在表单操作中放置 if 条件以检查 POST 不会做任何事情,您应该执行以下操作:

基本示例

form action="someting.php">
<input type="text" name="video_url" value="" />
<input type="submit" name="Show" value="Show" />
</form> 

然后在something.php

<?php 
if(isset($_POST['submit'])){
 $VideoID = getYouTubeID($_POST['video_url']); 
 header('Location: /watch?v='.$VideoID); 
}
?>
于 2013-05-31T03:25:35.103 回答