gpt4 book ai didi

PHP/正则表达式 : extracting video id from youtube url- embedded code

转载 作者:可可西里 更新时间:2023-10-31 23:33:16 25 4
gpt4 key购买 nike

我正在尝试从 youtube url 输入中获取嵌入式代码。我偶然发现了这个ANSWER但是现在我将该答案应用于我的代码,但没有得到任何结果。我的目标是让正则表达式将 url 变成这样:http://www.youtube.com/watch?v=videoid .我怎样才能让正则表达式函数真正与我的代码一起工作?

<html>
<form method="post" action="">
URL:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input type="text" value="<?php $text ?>" name="yurl"> <!--$vari-->
<br>
<!--<br>
Height:&nbsp;
<input type="text" value="<?php $hth ?>" name="yheight"> $hth
<br>-->
<!--<br>
Width:&nbsp;&nbsp;
<input type="text" value="<?php $wdth ?>" name="ywidth"> $wdth
<br>
<br>-->
Autoplay:&nbsp;
<input type="checkbox" value="<?php $auto1; $auto2; ?>" name="yautop"> <!--$auto1 $auto2-->
<br>
<input type="submit" value="Generate Embed Code" name="ysubmit">
<br>
</form>
</html>

PHP

<?php


$vari ='';

if($_POST)
{



function linkifyYouTubeURLs($vari) {
$vari = preg_replace('~
# Match non-linked youtube URL in the wild. (Rev:20111012)
https?:// # Required scheme. Either http or https.
(?:[0-9A-Z-]+\.)? # Optional subdomain.
(?: # Group host alternatives.
youtu\.be/ # Either youtu.be,
| youtube\.com # or youtube.com followed by
\S* # Allow anything up to VIDEO_ID,
[^\w\-\s] # but char before ID is non-ID char.
) # End host alternatives.
([\w\-]{11}) # $1: VIDEO_ID is exactly 11 chars.
(?=[^\w\-]|$) # Assert next char is non-ID or EOS.
(?! # Assert URL is not pre-linked.
[?=&+%\w]* # Allow URL (query) remainder.
(?: # Group pre-linked alternatives.
[\'"][^<>]*> # Either inside a start tag,
| </a> # or inside <a> element text contents.
) # End recognized pre-linked alts.
) # End negative lookahead assertion.
[?=&+%\w-]* # Consume any URL (query) remainder.
~ix',
'<a href="http://www.youtube.com/watch?v=$1">YouTube link: $1</a>',
$vari);
return $vari;
}



$vari = $_POST['yurl'];
$hth = 300; //$_POST['yheight'];
$wdth = 500; //$_POST['ywidth'];
$is_auto = 0;

$step1 =explode ('v=', $vari);
$step2 =explode ('&amp;',$step1[1]);

if(isset($_POST['yautop'] ))
{
if($_POST['yautop'] == 1)
$is_auto = 1;
}
$auto1 = '?autoplay='.$is_auto;
$auto2 = '&autoplay='.$is_auto;
?>

<p>Iframe Result:</p>
<?
//Iframe code with optional autoplay

echo ('<iframe src="http://www.youtube.com/embed/'.$step2[0].'" frameborder="0" width="'.$wdth.'" height="'.$hth.'"></iframe>');
?>

最佳答案

也许我在这里遗漏了一些东西,但使用起来会不会更容易 parse_urlparse_str :

$url = 'http://www.youtube.com/watch?v=Imh0vEnOMXU&feature=g-vrec';    // some youtube url
$parsed_url = parse_url($url);
/*
* Do some checks on components if necessary
*/
parse_str($parsed_url['query'], $parsed_query_string);
$v = $parsed_query_string['v'];

参见 example on codepad .

当然,如果您输入的是 youtube 提供的完整代码片段,您将需要一个 DOM 解析器来获取 url。

关于PHP/正则表达式 : extracting video id from youtube url- embedded code,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11437336/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com