ゼロと無限の間に

フリーでオープンソースなJavaScriptとかPHPとか。

ユーザ用ツール

サイト用ツール


サイドバー

何かありましたら、メールで連絡いただくか、ブログのどこかにコメント入れてくださいね ^_^

Menu

ゼロと無限の間に

はじめに

作った主なサイト

作った主な便利ツール(無料)

ログ (Blog)

php-tool-box:vodcaster

PHPでお手軽にビデオポッドキャスト - Vodcaster.php

簡単にVideo Podcastができる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