php-tool-box:vodcaster
PHPでお手軽にビデオポッドキャスト - Vodcaster.php
使用例
<?php require_once('Vodcaster.php'); $baseUrl = 'http://' . $_SERVER['HTTP_HOST'] . '/vodcast/'; //動画の詳細なデータを配列に入れる $items[] = array( 'title' => "タップダンサー" , 'description' => "この華麗なステップ!" , 'date' => "2006-11-18" , 'url' => $baseUrl . "dance.mp4" //動画ファイルのURL , 'path' => "dance.mp4" //サーバ上の動画ファイルへのパス ); $items[] = array( 'title' => "枕係さん奮闘中" , 'description' => "枕を出すのが僕の仕事!" , 'date' => "2007-01-28" , 'url' => $baseUrl . "makura.mp4" , 'path' => "makura.mp4" ); // 1. インスタンスを生成 $v = new VodCaster(); // 2. publicな変数に(必要に応じて)値をセット $v->title = '日々是生活'; $v->link = $baseUrl; $v->description = '心和む日常のビデオです。'; $v->encode = 'Shift_JIS'; // 3. 詳細データを渡してフィードを出力 $v->feed($items);
ソースコード
<?php class Vodcaster { public $title; //Vodcast全体のタイトル public $link; //Podcast情報に表示するURL public $description; //説明欄に表示する文章 public $language = 'ja'; public $encode = 'UTF-8'; /** * @param array $items array(title, description, date, url, path) */ public function feed(array $items) { $f = '<?xml version="1.0" encoding="' . $this->encode . '"?>' . "\n"; $f .= '<rss version="2.0">' . "\n"; $f .= "<channel>\n"; $f .= '<title>' . $this->_h($this->title) . "</title>\n"; $f .= '<link>' . $this->link . "</link>\n"; $f .= '<description>' . $this->_h($this->description) . "</description>\n"; $f .= '<language>' . $this->language . "</language>\n"; foreach ($items as $item) { $f .= "<item>\n"; $f .= '<title>' . $this->_h($item['title']) . "</title>\n"; $f .= '<description>' . $this->_h($item['description']) . "</description>\n"; $f .= '<pubDate>' . date_format(new DateTime($item['date']), DATE_RSS) . "</pubDate>\n"; $f .= '<enclosure url="' . $item['url'] . '" length="' . filesize($item['path']) . '"'; $f .= ' type="video/mp4" />' . "\n"; $f .= "</item>\n"; } $f .= "</channel>\n"; $f .= "</rss>\n"; header('Content-type: application/rss+xml'); //これでなくても動くけど echo $f; } private function _h($value) { return htmlSpecialChars($value, ENT_QUOTES); } }
php-tool-box/vodcaster.txt · 最終更新: 2008/02/29 23:23 by dgbadmin