php - 使用 PHP、JavaScript 解析位于另一台服务器上的 CSV

标签 php javascript jquery csv

我想解析位于另一台服务器 (Yahoo Finance) 上的动态生成的 CSV 文件,但据我所知,您无法使用 XMLHTTPRequest 访问另一台服务器上的内容,至少不能以 CSV 格式访问。

我已经想到了这个问题的解决方案,我想知道这是否是“正确”的方法或最佳实践,因为我对开发还比较陌生。这是我使用 PHP 想出的:

<?php
    $symbol = $_GET["s"];

    $path = "http://download.finance.yahoo.com/d/quotes.csv?s=" . $symbol . "&f=sl1d1t1c1ohgv&e=.csv";
    $yahooquote = fopen($path, "r");

    while(!feof($yahooquote))
    {
        $line = fgets($yahooquote, 1000);
        echo $line . "<br />";
    }

    fclose($yahooquote);
?>

这将返回一个包含 CSV 文件行的 html 文件,然后我可以使用 JavaScript/jQuery XMLHTTPRequest 在客户端解析它。

这是最好的方法吗?你有什么想法/建议吗?请记住,这必须快速,因为它必须每 10 秒运行一次以更新 +100 个股票报价。提前致谢。

最佳答案

问题在于它会被您网站的多个用户一遍又一遍地运行。

如果您想要速度并降低带宽和性能,那么您应该执行以下操作:

创建一个由 cron 每 X 秒私下执行的脚本,它从 yahoo 获取 csv 数据并将其存储在本地服务器上。

一旦解决了这个问题,那么当您的用户通过 ajax 检查时,您可以只向他们提供本地副本。

所有用户将共享相同的缓存文件,并且您每十秒只运行一次,它也将由另一个实例处理,因此用户将看到更快的响应,您可能还想阅读有关 file locking 的信息

您可能还想在 PHP 端使用 cURL

关于php - 使用 PHP、JavaScript 解析位于另一台服务器上的 CSV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4528165/

相关文章:

php - 使用服务器发送的事件和 php session

javascript - 执行通过 AJAX 返回的 JavaScript 的正确方法(无 jQuery)

javascript - 未计算 div 的外部高度

javascript - 使用动画/jQuery 在 div 中切换 imgs

php - Woocommerce 分组产品带有单独的 “Add To Cart” 按钮

php - 在 php 的 while 循环中滚动一个 div

php - 在 PHP 中使用变量作为函数名

javascript - GM_xmlhttpRequest 在 Chrome 中 onbeforeunload 期间不起作用

javascript - 回调后代码的最佳实践

jquery - 菜单锚定到最外层的 div