【问题标题】:Yahoo finance CSV API and appid in PHPPHP 中的 Yahoo Finance CSV API 和 appid
【发布时间】:2011-12-23 12:51:33
【问题描述】:

我有一个从 Yahoo! 检索股票数据的小应用程序在我的本地服务器上工作正常。当我将它上传到远程服务器时,它停止返回数据并在 FF 中显示安全错误:“此网站不提供所有权信息。”

然后我意识到我必须申请一个应用程序 ID,但问题仍然存在:

$appid = urlencode('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx--'); // My App ID
...
$cHandle = curl_init();
curl_setopt($cHandle, CURLOPT_URL, 'http://download.finance.yahoo.com/d/quotes.csv?appid='.$appid.'&s='.$symbol.'&f='.$properties.'&e=.csv');
curl_setopt($cHandle, CURLOPT_RETURNTRANSFER, true);
$dataStr = curl_exec($cHandle);
curl_close($cHandle);
echo json_encode($dataStr);

知道我的代码有什么问题吗?提前致谢

【问题讨论】:

    标签: php api csv yahoo-finance


    【解决方案1】:

    您的错误与您的代码无关 - Firefox 中的错误与 SSL 证书有关。至于为什么您的代码不起作用 - 在 CURL 周围添加一些错误检查,看看会产生什么:

    $appid = urlencode('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx--'); // My App ID
    ...
    $cHandle = curl_init();
    curl_setopt($cHandle, CURLOPT_URL, 'http://download.finance.yahoo.com/d/quotes.csv?appid='.$appid.'&s='.$symbol.'&f='.$properties.'&e=.csv');
    curl_setopt($cHandle, CURLOPT_RETURNTRANSFER, true);
    ...
    
    if(curl_exec($cHandle) === false)
    {
        echo 'Curl error: ' . curl_error($cHandle);
    }
    else
    {
        echo 'Operation completed without any errors';
    }
    
    // Close handle
    curl_close($ch);
    

    【讨论】:

    • 感谢您启发我的思想。代码运行良好,问题似乎是我正在使用 json_encode() 函数,它是 PHP 5.2.0 的 PHP 核心的一部分。我的本地服务器上有 PHP 5.3.1,但远程服务器上有 5.1.6。所以,我必须安装 PECL json 包或在客户端处理数据,因为这个 PHP 脚本是使用 jQuery.ajax() 请求的
    猜你喜欢
    • 2023-03-14
    • 2010-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-14
    • 2018-08-11
    相关资源
    最近更新 更多