Php 如何获取xiph.org的所有无线URL

Php 如何获取xiph.org的所有无线URL,php,webradio,Php,Webradio,有没有办法从中获取所有URL?有没有一种方法可以直接查询站点,从web应用程序中获取指定的收音机或指定类别的收音机?好的,我已经查看了该站点上的一些流 如果在文本编辑器中打开XSPF文件,就会得到一些XML,其中流被包装在选项卡中 你必须为此设置某种爬虫程序。我给你做一个简单的 //define the link $link = 'http://dir.xiph.org/'; //get the contents $contents = file_get_contents($link); p

有没有办法从中获取所有URL?有没有一种方法可以直接查询站点,从web应用程序中获取指定的收音机或指定类别的收音机?

好的,我已经查看了该站点上的一些流

如果在文本编辑器中打开
XSPF
文件,就会得到一些XML,其中流被包装在
选项卡中

你必须为此设置某种爬虫程序。我给你做一个简单的

//define the link
$link = 'http://dir.xiph.org/';

//get the contents
$contents = file_get_contents($link);

preg_match_all('|"/listen/(.*)/listen.m3u"|',$contents,$match);


//define xspf link array
$xspfLinks = array();

//define default link
$xspfLink = 'http://dir.xiph.org/listen/';

//define final stream array
$finalStream=array();

foreach ($match[1] as $id )
{
    //assign ID to default link and throw it in the array
    $xspfLinks[]=$xspfLink.$id.'/listen.xspf';

}

// now loop through that array
foreach ($xspfLinks as $hehehe )
{
    //download xspf file
    $xspf = file_get_contents($hehehe);

    if(preg_match('|<location>(.*)</location>|',$xspf,$heheMatch))
    {

        //put stream url in final array
        $finalStream[]=$heheMatch[1];
        //test it
        echo 'HEHEHEHE I just stole:'.$heheMatch[1]."<br>";

    }
}

//now do as you please with $finalStream (it will contain all your stream urls)
//定义链接
$link='1http://dir.xiph.org/';
//获取内容
$contents=file\u get\u contents($link);
preg|u match_all(“|”/listen/(.*)/listen.m3u“|”,$contents,$match);
//定义xspf链接数组
$xspfLinks=array();
//定义默认链接
$xspfLink=$http://dir.xiph.org/listen/';
//定义最终流数组
$finalStream=array();
foreach($id匹配[1])
{
//将ID分配给默认链接并将其放入数组中
$xspfLinks[]=$xspfLink.id./listen.xspf';
}
//现在循环遍历该数组
foreach($xspfLinks作为$hehehe)
{
//下载xspf文件
$xspf=文件获取内容($hehehe);
if(preg|u匹配(“|(.*)|,$xspf,$hematch))
{
//将流url放入最终数组
$finalStream[]=$heheMatch[1];
//测试一下
echo‘嘿嘿嘿,我刚才偷了:’。$heheMatch[1]。“
”; } } //现在使用$finalStream(它将包含您的所有流URL)执行您喜欢的操作
我只是为你做了这一切。但是是的,这应该行得通

哦,还有一件事,如果你很傻,在不该偷的时候偷了那些数据流,我不会为此负责。

Xiph.org正在进行一项研究。由于mysqls
CONCAT(json\u对象(m.stream\u name…
query),编码仍然被严重破坏


但是,即使使用regex JSON提取,它也比处理旧的
yp.xml

更快、更容易使用。你确定你不会侵犯任何版权吗?我希望不会!它不是商业应用程序,它只是一个从xiph.org获取流的播放器,在线和手机上都有上百个无线电播放器。我在那里没有看到任何广播/流URL。它们在哪里?你是说在xiph.org上吗?流是开着的。谢谢你,我稍后会尝试,为什么它会是非法的?我可以一个接一个地打开所有流,这并不违法。我可以下载音频播放器的插件并收听所有流。所以请告诉我在所有这些方面有什么可能是非法的。是的,我知道打开它们没关系。但这不是你在这里要做的。你正在使用它们。你可以用它来设置自己的应用程序,复制它们。我从来没有说过这是非法的,但很容易违反版权法。我的目的是创建一个包含URL的小数据库,这样应用程序就可以打开它,而不是每次打开站点来收听音乐新电台。请告诉我它是否合法或侵犯版权,所以现在你想让我读他们的版权法,即使花了半个小时为你写代码?哈哈哈,你真有趣。