所以我在这个网站上忙着,它需要收音机。他们正在使用icecast服务器,因此我从互联网上获取了一个Icecast状态:
<?php
$icecast_url='http://178.32.13.195:8002';
$output = file_get_contents($icecast_url);
$search='#<div class="newscontent">.*?Point /(.*?)<.*?href="(.*?)">M3U<.*?Listeners.*?class="streamdata">(.*?)<.*?Song:.*?class="streamdata">(.*?)<.*?</div>#si';
preg_match_all($search, $output, $matches);
$j=count($matches[0]);
for ($i=0;$i<$j; $i++) {
$point_name=$matches[1][$i];
$pount_m3u=$icecast_url.$matches[2][$i];
$point_listners_count=$matches[3][$i];
$point_current_song=$matches[4][$i];
//
echo 'mount point: <b>'.$point_name.'</b>
';
echo 'm3u: <a href="'.$pount_m3u.'">'.$pount_m3u.'</a>
';
echo 'listners_count: <b>'.$point_listners_count.'</b>
';
echo 'point_current_song: <b>'. $point_current_song.'</b>
';
}
?>
但它不起作用。它只显示一个空白页面。你们中的任何一个人都知道错误吗?
由于
答案 0 :(得分:2)
他们正在使用Icecast 2.4.0,它有一个重新设计的Admin界面,这会破坏你的解析代码。
请不要尝试解析html,每当他们更新Icecast和HTML更改时它都会中断。
相反,您可以尝试新引入的status-json.xsl,即对于此服务器,它位于此处:http://178.32.13.195:8002/status-json.xsl
请注意,遗憾的是由于json xslt中的错误,这是无效的JSON。此问题已在Icecast 2.4.1中修复,因此,如果您可以访问服务器,则可以尽快更新到Icecast 2.4.1(可能会在几周内发布)。如果您无法访问服务器,那么您无法做到,但解析HTML是最糟糕的方法。