相關前文
http://electronmania.blogspot.tw/2016/06/10731283-php.html
大愛電視網站上有個 RSS 連結:
http://www.daai.tv/daai-web/aboutdaai/rss.php
我們可以先用電腦的瀏覽器看看它的版面排列與內容,再看看它的原始碼。
它的原始碼與 podcast 格式並不相同,所以無法直接用1073/1283 媒體播放機收看。
podcast 格式
podcast 格式主要包含三個項目
<title></title>
<description></description>
<enclosure />
例如:
<title>法國足球暴動</title>
<description>英法足球迷場外衝突一波波</description>
<enclosure url="http://aaa.bbc.net/1240.mp4"/>
美國之音、CNN student news、NASA...等等都是同樣的架構。
點子
把大愛電視的 RSS 改成 podcast 格式是不是就可以了?
是的,沒錯。
但是我們沒辦法要求大愛改變 RSS 格式。
那就在 1073/1283 媒體播放機這一端改
也就是把
http://www.daai.tv/daai-web/aboutdaai/rss.php
的原始碼讀進來,然後在 1073/1283 媒體播放機這一端將它改成 podcast 格式,再執行它,
就可以了。
而讀原始碼、轉換格式,都可以用底下這段 PHP 程式來完成。
daai_tv.php
(剪貼存成 UTF-8 格式)
<?php
$link = "http://www.daai.tv/daai-web/aboutdaai/rss.php";
gettitle($link);
function gettitle($link)
{
$text = file_get_contents($link);
preg_match_all('/<item><title>.*?<\/title>/is', $text, $matches);
preg_match_all('/<a href=.*?<\/a>/is', $text, $matches2);
$text = str_replace("<description>大愛網站</description>","",$text);
preg_match_all('/<description>.*?<img/is', $text, $matches1);
$p_string = '<rss><channel>';
for ($index=0;$index < count($matches[0]); $index++){
$p_string .= '<item><title>';
$m = strip_tags($matches[0][$index]);
$p_string .= $m;
$p_string .= '</title><description>';
$m1 = strip_tags($matches1[0][$index]);
$m1 = str_replace("<img","",$m1);
$m1 .= '</description>';
$p_string .= $m1;
$m2 = strip_tags($matches2[0][$index]);
$m2 = str_replace("<a>"," ",$m2);
$m2 = str_replace("<a href=","<enclosure url=",$m2);
$m2 = str_replace("</a>","",$m2);
$m2 = str_replace("影片觀賞","",$m2);
$m2 = str_replace(">",">",$m2);
$m2 = str_replace("<","<",$m2);
$m2 = str_replace("target='_blank'>","target='_blank' />",$m2);
$m2 = str_replace("'","\"",$m2);
$p_string .= $m2;
$p_string .= '</item>';
}
$p_string .= '</channel></rss>';
echo $p_string;
}
?>
實作
1.
1073/1283 媒體播放機安裝 MoServices 模組,已能收看 YouTube。
2.
把 daai_tv.php 拷貝到 /tmp/www。
3.
在
「Add URL-自行增加 IMS 項目」
中輸入
http://localhost/daai_tv.php
然後執行它就可以了。
問題提醒
放在 /tmp/www/ 的 daai_tv.php ,在經過一段時間或斷電後,就會被清除。
如果想要一直都能看,就要視自己的需求,再參考先前的相關貼文找出最適合的解決方法。
如果只想看國際新聞
大愛電視的新聞有多種分類,如果只想看「國際新聞」,只要加
if (strpos($m, '國際新聞') !== false) {
}
把它分離出來就可以了:
<?php
$link = "http://www.daai.tv/daai-web/aboutdaai/rss.php";
gettitle($link);
function gettitle($link)
{
$text = file_get_contents($link);
preg_match_all('/<item><title>.*?<\/title>/is', $text, $matches);
preg_match_all('/<a href=.*?<\/a>/is', $text, $matches2);
$text = str_replace("<description>大愛網站</description>","",$text);
preg_match_all('/<description>.*?<img/is', $text, $matches1);
$p_string = '<rss><channel>';
for ($index=0;$index < count($matches[0]); $index++){
$m = strip_tags($matches[0][$index]);
if (strpos($m, '國際新聞') !== false) {
$p_string .= '<item><title>';
$p_string .= $m;
$p_string .= '</title><description>';
$m1 = strip_tags($matches1[0][$index]);
$m1 = str_replace("<img","",$m1);
$m1 .= '</description>';
$p_string .= $m1;
$m2 = strip_tags($matches2[0][$index]);
$m2 = str_replace("<a>"," ",$m2);
$m2 = str_replace("<a href=","<enclosure url=",$m2);
$m2 = str_replace("</a>","",$m2);
$m2 = str_replace("影片觀賞","",$m2);
$m2 = str_replace(">",">",$m2);
$m2 = str_replace("<","<",$m2);
$m2 = str_replace("target='_blank'>","target='_blank' />",$m2);
$m2 = str_replace("'","\"",$m2);
$p_string .= $m2;
$p_string .= '</item>';
}
}
$p_string .= '</channel></rss>';
echo $p_string;
}
?>
.
沒有留言:
張貼留言