代码之家  ›  专栏  ›  技术社区  ›  daihovey

如何通过php正确检索flash站点的twitter xml?

  •  0
  • daihovey  · 技术社区  · 16 年前

    我是否在使用twitterscript来检索flash站点内的twitter数据?由于Twitter的跨域策略,我需要设置一个PHP代理… 首先我做了一个简单的

    <?php 
    $url = $_GET['url'];
    readfile($url);
    ?>
    

    但是我得到这个错误

    URL file-access is disabled in the server configuration
    

    这只能通过让主机打开fopen()来解决,我不想这样做。

    然后我找到了这个

    <?php
    
    function get_content($url)
    {
    $ch = curl_init();
    
    curl_setopt ($ch, CURLOPT_URL, $url);
    curl_setopt ($ch, CURLOPT_HEADER, 0);
    
    ob_start();
    
    curl_exec ($ch);
    curl_close ($ch);
    $string = ob_get_contents();
    
    ob_end_clean();
    
    return $string;    
    }
    
    #usage:
    $url = $_GET['url'];
    $content = get_content ($url);
    var_dump ($content);
    ?>
    

    这就解决了这个问题,但现在的数据是正确的XML,但看起来:

    string(39950) "<?xml version="1.0" encoding="UTF-8"?>
    <statuses type="array">
    <status>
    ...
    </statuses>"
    

    如何从该字符串中获取XML数据?

    1 回复  |  直到 16 年前
        1
  •  1
  •   svens    16 年前

    您的问题是,当您想要输出结果时,您使用的是var_dump()。只使用 echo 相反。另外,您不需要输出缓冲来获取站点的内容。

    固定码

    <?php
    
    function get_content($url)
    {
    $ch = curl_init();
    
    curl_setopt ($ch, CURLOPT_URL, $url);
    curl_setopt ($ch, CURLOPT_HEADER, 0);
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
    
    $string = curl_exec ($ch);
    curl_close ($ch);
    
    return $string;    
    }
    
    #usage:
    $url = $_GET['url'];
    $content = get_content ($url);
    echo $content;
    ?>
    
    推荐文章