我有一个基于php / mySQL的网站,其中发布商在特定数据库列中插入了很多youtube视频copiyng /粘贴youtube嵌入代码。代码的差异很大,反映了谷歌在时间上做出的变化。播放器窗口的不同大小是主要变化。现在我需要统一所有的窗户,但我不知道从哪里开始。我需要达到的是像正则表达式来消除各种条目中的所有不必要的代码(即将所有嵌入代码转换为相应的youtube网址?)然后创建一个脚本来生成播放器代码运行时... 一些有助于了解从哪里开始? 谢谢!
答案 0 :(得分:1)
<?php
//your bad code which you want to sanitize
$BadCode = '<object width="640" height="385">
<param name="movie" value="http://www.youtube.com/v/TvJsRX9SKUo?fs=1&hl=it_IT"></param>
<param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param>
<embed src="http://www.youtube.com/v/TvJsRX9SKUo?fs=1&hl=it_IT" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"></embed>
</object>';
//Get Youtube Video ID
preg_match('#(?<=youtube\.com/v/)\w+#', $BadCode, $matches);
$VideoID = $matches[0];
//New Correct and consistent embed code template. Create whatever consistent template you want. Then all your videos will follow this template. Change the place where video-id appears as [VIDEOID]
$template = '<object type="application/x-shockwave-flash" style="width:450px; height:366px;" data="http://www.youtube.com/v/[VIDEOID]?showsearch=0&fs=1">
<param name="movie" value="http://www.youtube.com/v/[VIDEOID]?showsearch=0&fs=1" /><param name="allowFullScreen" value="true" />
</object>';
//Insert our VideoID into this template.
$GoodCode = str_replace('[VIDEOID]', $VideoID, $template);
//Display code for testing
echo $GoodCode;
//Update your database table (please change variables yourself)
//mysql_query("update tablename set YoutubeCode = '".$GoodCode."' where ID={$ID}");
?>
[用于提取视频ID的正则表达式]。获取视频ID后,您将获得视频ID。使用此ID为您的所有视频生成干净一致的代码。然后,更新数据库。