PHP に YouTube ビデオを埋め込むにはどうすればよいですか?
-
03-07-2019 - |
質問
どうすればできるか誰か教えてください 見せる それとも、URL または埋め込みコードがあれば YouTube ビデオを埋め込みますか?
解決
ユーチューブの動画から11文字のコードを保存するようユーザーに依頼する必要があります。
たとえば http://www.youtube.com/watch?v=Ahg6qcgoay4
11文字のコードはAhg6qcgoay4です
次に、このコードを取得してデータベースに配置します。次に、ページ内のyoutubeビデオを配置する場所に、データベースからキャラクターをロードし、次のコードを入力します:-
e.g。 Ahg6qcgoay4の場合:
<object width="425" height="350" data="http://www.youtube.com/v/Ahg6qcgoay4" type="application/x-shockwave-flash"><param name="src" value="http://www.youtube.com/v/Ahg6qcgoay4" /></object>
他のヒント
埋め込みコードをデータベースに保存しないでください-YouTubeは埋め込みコードとURLパラメータを時々変更する場合があります。たとえば、<object>
埋め込みコードは廃止され、<iframe>
埋め込みコードが採用されました。 URL /埋め込みコードからビデオIDを解析し(正規表現、URL解析関数、またはHTMLパーサーを使用)、保存する必要があります。次に、現在YouTube APIで提供されているメカニズムを使用して表示します。
動画IDを抽出するための単純なPHPの例は次のとおりです。
<?php
preg_match(
'/[\\?\\&]v=([^\\?\\&]+)/',
'http://www.youtube.com/watch?v=OzHvVoUGTOM&feature=channel',
$matches
);
// $matches[1] should contain the youtube id
?>
これらのIDをどう処理するかを理解するには、これらの記事を参照することをお勧めします。
独自のYouTube動画プレーヤーを作成するには:
YouTubeの長いURLと短いURLの両方から、次の方法で埋め込みを取得できます。
$ytarray=explode("/", $videolink);
$ytendstring=end($ytarray);
$ytendarray=explode("?v=", $ytendstring);
$ytendstring=end($ytendarray);
$ytendarray=explode("&", $ytendstring);
$ytcode=$ytendarray[0];
echo "<iframe width=\"420\" height=\"315\" src=\"http://www.youtube.com/embed/$ytcode\" frameborder=\"0\" allowfullscreen></iframe>";
誰かに役立つことを願って
<object>
および<embed>
タグは、 HTML Youtubeビデオ、<iframe>
タグを使用することをお勧めします。
<iframe width="420" height="315"
src="http://www.youtube.com/embed/XGSy3_Czz8k?autoplay=1">
</iframe>
ユーザーがリンクで動画IDを見つけてフォームフィールドに入力しようとするのに生涯を費やさないように、YouTubeで見つけた動画のリンクを投稿できるようにします。次の正規表現を使用して取得できますビデオID:
preg_match("/^(?:http(?:s)?:\/\/)?
(?:www\.)?(?:m\.)?(?:youtu\.be\/|youtube\.com\/(?:(?:watch)?\?(?:.*&)?v(?:i)?=|
(?:embed|v|vi|user)\/))([^\?&\"'>]+)/", $url, $matches);
動画IDを取得するには、取得できます$matches[1]
、これらは一致します:
- youtube.com/v/vidid
- youtube.com/vi/vidid
- youtube.com/?v=vidid
- youtube.com/?vi=vidid
- youtube.com/watch?v=vidid
- youtube.com/watch?vi=vidid
- youtu.be/vidid
- youtube.com/embed/vidid
- http://youtube.com/v/vidid
- http://www.youtube.com/v/vidid
- https://www.youtube.com/v/vidid
- youtube.com/watch?v=vidid <!> amp; wtv = wtv
- http://www.youtube .com / watch?dev = inprogress <!> amp; v = vidid <!> amp; feature = related
- https://m.youtube.com/watch?v=vidid
この回答の一部は、この質問の@shawnの回答によって参照されています。
正規表現を使用して<!> quot; video id <!> quot;を抽出します。 watch?v=
動画IDを変数に保存します。この変数を呼び出しましょうvid
ランダムな動画から埋め込みコードを取得し、埋め込みコードから動画IDを削除し、取得したv\=([\-\w]+)
に置き換えます。
PHPで正規表現を処理する方法がわかりませんが、それほど難しくないはずです
Pythonのサンプルコード:
>>> ytlink = 'http://www.youtube.com/watch?v=7-dXUEbBz70'
>>> import re
>>> vid = re.findall( r'v\=([\-\w]+)', ytlink )[0]
>>> vid
'7-dXUEbBz70'
>>> print '''<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/%s&hl=en&fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/%s&hl=en&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>''' % (vid,vid)
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/7-dXUEbBz70&hl=en&fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/7-dXUEbBz70&hl=en&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>
>>>
正規表現v=
は、<=>
これは、URL を自動的にリンクに変換し、YouTube からのビデオ URL を自動的に埋め込むために私が書いたコードです。私が取り組んでいるチャットルーム用に作成しましたが、かなりうまく機能します。たとえばブログなどの他の目的でも問題なく機能すると確信しています。
必要なのは、関数「autolink()」を呼び出して、解析する文字列を渡すことだけです。
たとえば、以下の関数を含めて、このコードをエコーします。
`
echo '<div id="chat_message">'.autolink($string).'</div>';
/****************Function to include****************/
<?php
function autolink($string){
// force http: on www.
$string = str_ireplace( "www.", "http://www.", $string );
// eliminate duplicates after force
$string = str_ireplace( "http://http://www.", "http://www.", $string );
$string = str_ireplace( "https://http://www.", "https://www.", $string );
// The Regular Expression filter
$reg_exUrl = "/(http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/";
// Check if there is a url in the text
$m = preg_match_all($reg_exUrl, $string, $match);
if ($m) {
$links=$match[0];
for ($j=0;$j<$m;$j++) {
if(substr($links[$j], 0, 18) == 'http://www.youtube'){
$string=str_replace($links[$j],'<a href="'.$links[$j].'" rel="nofollow" target="_blank">'.$links[$j].'</a>',$string).'<br /><iframe title="YouTube video player" class="youtube-player" type="text/html" width="320" height="185" src="http://www.youtube.com/embed/'.substr($links[$j], -11).'" frameborder="0" allowFullScreen></iframe><br />';
}else{
$string=str_replace($links[$j],'<a href="'.$links[$j].'" rel="nofollow" target="_blank">'.$links[$j].'</a>',$string);
}
}
}
return ($string);
}
?>
`
プログラムで動画をアップロードする場合は、 YouTube Data API を確認してください PHP
の場合この同じトピックを検索して、JavaScriptとYoutube APIを使用した別のメソッドを見つけました
直接: http://code.google.com/apis/ajax / playground /#simple_embed
APIの読み込み
<script src="http://www.google.com/jsapi" type="text/javascript"></script>
そして、次のjavascriptコードを実行します:
google.load("swfobject", "2.1");
function _run() {
var videoID = "ylLzyHk54Z0"
var params = { allowScriptAccess: "always" };
var atts = { id: "ytPlayer" };
// All of the magic handled by SWFObject (http://code.google.com/p/swfobject/)
swfobject.embedSWF("http://www.youtube.com/v/" + videoID + "&enablejsapi=1&playerapiid=player1",
"videoDiv", "480", "295", "8", null, null, params, atts);
}
google.setOnLoadCallback(_run);
完全なサンプルは、以前に参照したページ http://code.google.com/にあります。 apis / ajax / playground
これはJoomlaで簡単に行えます。サンプルのYouTube URLを想定してみましょう- https://www.youtube.com/watch?v=ndmXkyohT1M
<?php
$youtubeUrl = JUri::getInstance('https://www.youtube.com/watch?v=ndmXkyohT1M');
$videoId = $youtubeUrl->getVar('v'); ?>
<iframe id="ytplayer" type="text/html" width="640" height="390" src="http://www.youtube.com/embed/<?php echo $videoId; ?>" frameborder="0"/>
単純にVarchar date
のphp入力フォームを作成し、varchar
の長さ(たとえば300)を指定します。次に、埋め込みコードをコピーして貼り付けるようにユーザーに依頼します。レコードを表示すると、ストリーミング動画。
luvboy、
明確に理解している場合、ユーザーはYoutubeビデオのURL /コードを入力すると、そのビデオがページに表示されます。
そのためには、レイアウトなどを含む簡単なページを作成します。YouTubeからビデオ埋め込みコードをコピーして、ページに貼り付けます。埋め込みコードをVideoIDなどのフィールドに置き換えます。このVideoIdをユーザーが提供するコードに設定します。
編集:Alec Smartの回答を参照してください。
Alec Smartの答えのちょっとした更新:AS2は非推奨になったため、彼の例を動作させるには '?version = 3'が必要です。 YouTubeのリファレンスは、YouTube埋め込みプレーヤーとプレーヤーパラメーター <!> quot;再生するコンテンツの選択<!> quot;詳細については。
言い換えれば:
<object width="425" height="350" data="http://www.youtube.com/v/Ahg6qcgoay4?version=3" type="application/x-shockwave-flash"><param name="src" value="http://www.youtube.com/v/Ahg6qcgoay4?version=3" /></object>
どうやら、上記のYoutubeリファレンスは次のようにこれを行います(オブジェクトタグをまだサポートしていないブラウザーのフォールバックとして使用される内部埋め込み):
<object width="640" height="390">
<param name="movie"
value="https://www.youtube.com/v/u1zgFlCw8Aw?version=3&autoplay=1"></param>
<param name="allowScriptAccess" value="always"></param>
<embed src="https://www.youtube.com/v/u1zgFlCw8Aw?version=3&autoplay=1"
type="application/x-shockwave-flash"
allowscriptaccess="always"
width="640" height="390"></embed>
</object>
またはiframeを使用する( http://example.com をサイトのドメインに置き換えます):
<iframe id="ytplayer" type="text/html" width="640" height="390" src="http://www.youtube.com/embed/u1zgFlCw8Aw?autoplay=1&origin=http://example.com" frameborder="0"/>
この YouTube埋め込みジェネレーターはすべての問題を解決しますビデオ埋め込みを使用。