YoutubeのURLリンクを外部プレイヤーのものに正規表現で置換する

公開日: : 最終更新日:2014/08/14 JavaScript/jQuery, PHP, Youtube, サイト制作

スポンサーリンク

Youtubeのアドレスを正規表現を使って抽出して外部プレイヤーのフレームに変換・置換するスクリプトです。PHPとjavascriptの両方で行いました。ソースではwidthとheightパラメータの2つを指定して、それぞれ外部動画プレイヤーの幅と高さを調整しています。

PHPのサンプル)

$width = 560;
$height = 315;
$desc = "https://www.youtube.com/watch?v=Yfl7OID_-gE&list=PLUkdT9ljJ1carw5EnCL7ZjmbYYzartc-p<br>https://www.youtube.com/watch?v=PvhuzoqsshY";

//正規表現で置換
$desc = preg_replace("/h?ttps?:\/\/www\.youtube\.com\/watch\??\w?=?([^<>?&]+)/","<iframe width=\"".$width."\" height=\"".$height."\" src=\"http://www.youtube.com/embed/\\1\" frameborder=\"0\" allowfullscreen></iframe>",$desc);

echo $desc;

javascriptのサンプル)

var width = 560;
var height = 315;
var desc = "https://www.youtube.com/watch?v=Yfl7OID_-gE&list=PLUkdT9ljJ1carw5EnCL7ZjmbYYzartc-p<br>https://www.youtube.com/watch?v=PvhuzoqsshY";

//正規表現で置換
desc = desc.replace(/h?ttps?:\/\/www\.youtube\.com\/watch\??\w?=?([^<>?&]+)/g,"<iframe width=\""+width+"\" height=\""+height+"\" src=\"http://www.youtube.com/embed/$1\" frameborder=
\"0\" allowfullscreen></iframe>");

document.write(desc);

このスクリプトではwww.youtube.comのもののみを対象としており、他のドメインからのものは考慮していません。使うときは幅、高さ、対象文字列の3つを引数にして関数化したほうが使いやすいと思います。

javascriptによるデモはこちら↓

ちなみにニコニコ動画の置換はこちら
この置換を一括で行えるデモ

SUMMER ADDICTION
SUMMER ADDICTION

posted with amazlet at 14.07.05
TUBE
SMAR (2012-06-27)
売り上げランキング: 109,418
スポンサーリンク
Amazon
  • このエントリーをはてなブックマークに追加

関連記事

スマホ向け幅固定サイトの回転時の幅対応方法

幅固定サイトでのスマホ回転時Webサイトの横幅を合わせる方法のメモ。 下記2点の設定が必要です。

記事を読む

【jQuery UI】Sliderのオプション変更やイベントを取得をする方法

jQuery UIを使ってスライダー(トラックバー)を作ります。その際に起こるイベントとしてスライダ

記事を読む

Windows7でVirtualBoxとVagrantを使ってローカル開発環境を構築する

Vagrant(ベイグラント)とは http://www.vagrantup.comで入手できる仮

記事を読む

no image

【PEAR】Services_AmazonのItemLookupで複数ASINを指定する

Amazon Product Advertising APIをPEARのServices_Amazo

記事を読む

【jQuery】hasClass is not a functionエラー

jQueryでセレクタを使って取得してきたjQueryオブジェクトからその子要素をchildrenで

記事を読む

ニコニコ動画のURLリンクから外部プレイヤーのスクリプトに正規表現で置換する

ニコニコ動画の動画のアドレスを抽出して外部プレイヤー貼りつけソースのスクリプトに変換するソースです。

記事を読む

指定URLのWebサイトの画面全体をキャプチャする方法

Webサイトのスクリーンショットを撮る方法としてはいくつかありますが、各方法ごとに調べたものを紹介し

記事を読む

【PHP】usortのfunctionでCannot redeclare(再定義)される

初心者なのでusortがいいものかどうなのかよくわからないのですが、usortの関数定義をするとたま

記事を読む

jQueryで要素にappendとafterを使って追加する

jqueryのappendは要素の末尾に指定要素を追加し、afterは要素の後に指定要素を加えます。

記事を読む

【PHP】file_get_contentsでリンク元などのヘッダ情報を変更する

file_get_contentsで他サイトの情報を読み取る際などでリンク元を明記したい場合は以下の

記事を読む

【Laravel5】既存のDBからデータを取得して表示する

はじめに 今まで作ったWebサイトをLaravel5で見れるようにし

【C++/OpenCV】cv::Matの画像にインパルスノイズを付加する

OpenCVで画像にノイズを付け足したいと思って調べたところ、Pyth

Intel Corei7-7700TでHTC Viveの動作確認

はじめに HTC ViveというVRヘッドセットで遊んでみたのでその

【Python】フォルダ内のカッコ付き数字ファイルを一括でリネームするスクリプト

はじめに タイトルどおりなのですが、指定フォルダ内のファイルのファイ

OpenCV3.1のTracking APIでトラッキングを試す

はじめに 先日OpenCV3.1をopencv_contrib付きで

パソコンを複数台使う際便利なツール

はじめに 先日、機械学習用にGPUを積んだBTOパソコンを購入しまし

OpenCV3.1をopencv_contrib付きでVisual Studio2013でビルドしてインストールする

はじめに OpenCV3.1でトラッキングがしたいと思いインストーラ

→もっと見る

  • Author : ががんぼ
    プログラミングやWeb関係で気付いたことについてメモしていく予定。だいたいが備忘録ですが、自分でサンプルを作って動かしてみたりしています。
PAGE TOP ↑