Php 获取提要中的第一个XML元素
我正在为主持一个科学展览的客户/朋友创建一个播客“小部件” 这段代码将标题和mp3播客从xml提要拉入jplayer 正在提取提要中的最后一个元素 当 这是最近的一次Php 获取提要中的第一个XML元素,php,xml,jplayer,Php,Xml,Jplayer,我正在为主持一个科学展览的客户/朋友创建一个播客“小部件” 这段代码将标题和mp3播客从xml提要拉入jplayer 正在提取提要中的最后一个元素 当 这是最近的一次 $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("|<
$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 ']';
}
我需要它们匹配,并且都显示最新的
$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 ']';
}
$c=file\u get\u contents('http://rss.sonibyte.com/rssfeed/56.xml');
preg_match_all('/enclosure url=“(.*)”length/',$c,$out,preg_PATTERN_ORDER);
preg|U match|U all(| StarTalk:(.*)U“,$c$标题,preg|U模式顺序);
如果(sizeof($out[1])>=3和&sizeof($titles[1])>=3){
回声“[”;
$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.'}';
回声']';
}
在这里,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"
});
});
$(文档).ready(函数(){
新的jPlayerPlaylist({
jPlayer:#jquery_jPlayer_1“,
CSS选择器存储:“jp容器1”
}, {
swfPath:“js”,
提供:“mp3,oga”,
wmode:“窗口”
});
});
“获取提要中的第一个XML元素”如下所示:
$rss = simplexml_load_string('http://rss.sonibyte.com/rssfeed/56.xml');
$item = $rss->channel->item[0];
print_r($item);
查看SimpleXML是如何工作的。其实很简单。永远不要用正则表达式解析XML
获取链接将非常简单
$url = (string)$item->link
永远不要用正则表达式解析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"
});
});
$(文档).ready(函数(){
变量playerdata=;
新的jPlayerPlaylist({
jPlayer:#jquery_jPlayer_1“,
CSS选择器存储:“jp容器1”
},playerdata{
swfPath:“js”,
提供:“mp3,oga”,
wmode:“窗口”
});
});
!同意,试试SimpleXML,这是2011:)。我们现在有了更简单的工具,朋友。谢谢,我会检查一下,虽然它似乎对标题有用。这里有一个链接让你开始使用SimpleXML和RSS。
$(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"
});
});