1

我想写一个小的 php 程序,它通过 cURL 从远程服务器获取 csv 文件。到目前为止它可以工作,现在我想在 JS 中使用这个 csv 文件。

将此文件从 php 提供给 JS 的最佳方法是什么?

在 php 服务器上创建 tmp 文件并在 JS 中使用该文件的链接?有没有更聪明的方法?

谢谢

4

3 回答 3

2

如果保证页面上需要该文件,则最好在页面加载时直接将内容添加到页面中:在隐藏的 DOM 元素中,或者最有可能作为 JavaScript 变量。如果您已经拥有该文件,那么最好的选择可能是将其转换为更接近您期望 JavaScript 处理的形式,很可能是 JSON 结构。可选地,如果它很大,您最好使用逻辑 Javascript 代码来最大限度地减少在客户端完成的额外处理。无论哪种方式,这都将消除对额外请求的需要,以及不太重要的延迟处理。

如果不能保证使用该文件并且 PHP curl 用作具有未知输入的反向代理之类的东西,那么公开一个端点并将其 AJAX 化可能更有意义。如果您使用的是 RDBMS,那么在数据库中的临时表中使用某种形式的 CLOB 字段可能更有意义,但是根据您的需要,临时文件或只是一个内存对象将起作用。

于 2012-10-14T13:12:50.957 回答
2

您不需要在服务器上创建临时文件,您可以在 javascript 中使用简单的 php

<script>alert("<?php echo $curlresult;?>")</script>
于 2012-10-14T13:15:34.863 回答
2

我会使用 AJAX 调用 PHP 文件,然后使用 cURL 来获取 CSV。

如果您选择直接使用 PHP 加载 DOM 中的文件,则在 cURL 操作完成之前不会出现页面。根据经验,我注意到如果一个页面需要 30 秒才能加载,最好显示一个“正在加载...”的页面,而不是显示一个空白页面 29 秒并在最后一秒显示所有内容。

顺便说一句,使用 cURL 并使用 AJAX 调用也是一种规避同域 AJAX 的方法。

我不建议在 JS 中使用 PHP 代码,因为如果您以后选择这样做,它将消除有效缓存/缩小 JS 的可能性。此外,它并不漂亮。

我会怎么做;

  • 使用 AJAX 调用 PHP 文件
  • 使用 cURL 获取文件
  • 以 JSON 格式输出其数据,它可能看起来像这样

    "{"1":{"col1":"hey","col2":"hey2"},"2":{"col1":"heyhey","col2":"heyhey2"}}"

  • Display data in a table, probably using dataTables or something equivalent.

于 2012-10-14T13:24:14.810 回答