【问题标题】:retrieving information from curl从 curl 中检索信息
【发布时间】:2010-06-24 03:46:28
【问题描述】:

我正在使用 curl 从 soundcloud 中检索信息。它提供了很多信息。但我想过滤它。

<?php
    $curl_handle=curl_init();
    curl_setopt($curl_handle,CURLOPT_URL,'http://api.soundcloud.com/tracks ');
    curl_exec($curl_handle);
    curl_close($curl_handle);
?>

如何过滤来自它的信息,例如stream-urldownloadabletitle 等。

【问题讨论】:

    标签: php xml curl


    【解决方案1】:

    有许多工具可以提取你想要的东西。

    您正在下载的流是一个 xml 文件,因此您可以通过 php 或直接在命令行上将其输出通过管道传输到某个解析器。

    您可以在此处查看用于 php 的内置 XML 解析器:http://php.net/manual/en/book.xml.php

    编辑这是一个示例用法

    <?php
    // Download the Data
    $curl_handle=curl_init();
    curl_setopt($curl_handle,CURLOPT_URL,'http://api.soundcloud.com/tracks ');
    curl_setopt($curl_handle,CURLOPT_RETURNTRANSFER,true);
    $xml_data = curl_exec($curl_handle);
    curl_close($curl_handle);
    
    //Parse it
    $xml = simplexml_load_string($xml_data);
    
    foreach ($xml->track as $track) {
        print "{$track->title}\n";
        print "\tStream URL: {$track->{'stream-url'}}\n";
    }
    
    ?>
    

    我最终改用 SimpleXML

    【讨论】:

    • 感谢它对我集成 api 非常有帮助
    【解决方案2】:
    <?php
    
    $url = 'http://api.soundcloud.com/tracks';
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $body = curl_exec($ch);
    curl_close($ch);
    
    $parser = xml_parser_create();
    xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);
    xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1);
    xml_parse_into_struct($parser, $body, $data);
    xml_parser_free($parser);
    
    print "<h1>The XML as a relatively flat PHP data structure</h1>";
    print "<pre>";
    print htmlentities($body);
    print "</pre>";
    print "<hr />";
    print "<h1>The Raw XML Data</h1>";
    print "<pre>";
    print htmlentities(print_r($data, true));
    print "</pre>";
    print "<pre>";
    
    ?>
    

    【讨论】:

    • 感谢它对我集成 api 非常有帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-10
    • 2017-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多