0

科学番組を主催するクライアント/友人のためにポッドキャスト「ウィジェット」を作成しています。

このコードは、タイトルとmp3ポッドキャストをxmlフィードからjplayerhttp ://www.freeenergymedia.com/shared/PLAYER/player/player.phpにプルします。

reset($titles[1])

フィードの最後の要素を引っ張っている間

end($out[1])

最新のものを引っ張っています

それらを一致させる必要があり、両方とも最新のものを表示します

$c = file_get_contents('http://rss.sonibyte.com/rssfeed/56.xml');
preg_match_all('/enclosure url="(.*)" length/', $c, $out, PREG_PATTERN_ORDER);
preg_match_all("|<[title]+>StarTalk:(.*)</[title]+>|U", $c, $titles, PREG_PATTERN_ORDER);
if(sizeof($out[1]) >= 3 && sizeof($titles[1]) >= 3) {
    echo '[';   
    $e = end($out[1]); $b = reset($titles[1]);   echo '{ title:"StarTalk:' . $b . '", mp3:"'.$e.'" },';
    $e = prev($out[1]); $b = next($titles[1]);  echo '{ title:"StarTalk:' . $b . '", mp3:"'.$e.'" },';
    $e = prev($out[1]); $b = next($titles[1]);  echo '{ title:"StarTalk:' . $b . '", mp3:"'.$e.'" }';
    echo ']';
}

phpがここのJPlayerプラグインに挿入され、mp3のURLとタイトルが表示されます

$(document).ready(function(){

    new jPlayerPlaylist({
        jPlayer: "#jquery_jplayer_1",
        cssSelectorAncestor: "#jp_container_1"
    }, <?php include('getxmlforplayer.php') ?>, {
        swfPath: "js",
        supplied: "mp3, oga",
        wmode: "window"
    });
});
4

2 に答える 2

4

「フィード内の最初の XML 要素を取得する」は次のようになります。

$rss = simplexml_load_string('http://rss.sonibyte.com/rssfeed/56.xml');

$item = $rss->channel->item[0];

print_r($item);

docs でSimpleXML の仕組みを確認してください。実際にはかなり簡単です。XML を正規表現で解析しないでください

リンクを取得するのは次のように簡単です

$url = (string)$item->link
于 2011-11-30T18:34:34.010 に答える
4

XML を正規表現で解析しないでください。

代わりにSimpleXMLまたはを使用してください。DOMDocument以下は、すべてのコードをSimpleXML.

$url = 'http://rss.sonibyte.com/rssfeed/56.xml';
$rss = simplexml_load_file($url);

$items = $rss->channel->item;

// first item is this:
$items[0];
// first title:
$items[0]->title;
// first url:
$items[0]->enclosure['url'];

$data = array();
foreach ($items as $item) {
    $data[] = array(
        'title' => (string) $item->title,
        'mp3'   => (string) $item->enclosure['url'],
    );
}

$jsdata = json_encode($data);

あなたのJavaScript:

$(document).ready(function(){
    var playerdata = <?php echo htmlspecialchars($jsdata, ENT_NOQUOTES, 'utf-8');?>;

    new jPlayerPlaylist({
        jPlayer: "#jquery_jplayer_1",
        cssSelectorAncestor: "#jp_container_1"
    }, playerdata, {
        swfPath: "js",
        supplied: "mp3, oga",
        wmode: "window"
    });
});
于 2011-11-30T18:39:34.567 に答える