php - 使用 PHP 从文件中读取大型 js 数组

标签 php javascript ajax json

我正在尝试从 CSV 文件处理大型(150MB+)JavaScript 数组。

数组如下所示:

var results = [
{"requestId":"1","responseId":"1","time":"11","opacity":"0.6"}
,
{"requestId":"1","responseId":"2","time":"12","opacity":"0.7"}
,
{"requestId":"1","responseId":"3","time":"13","opacity":"0.8"}
,
{"requestId":"1","responseId":"4","time":"14","opacity":"0.9"}
,
{"requestId":"1","responseId":"5","time":"15","opacity":"0.1"}
....
];

大约有100,000行。我需要从每个数组元素中获取每个值。

例如,我需要分别从“requestId”、“responseId”、“time”和“opacity”中获取1、1、11和0.6。

我尝试使用*file_get_contents*(失败,无法读取文件,它太大)和文件流,还有以下代码来读取,但我不知道如何提取数字使用 PHP。非常感谢你的帮助。无论如何,我可以将其转换为 PHP 数组或 JSON 吗?不过,我喜欢尽快处理数字......

$fh = fopen($cachedFile, 'r');
$Data = fread($fh, filesize($cachedFile));
fclose($fh);
echo "<pre>";
echo $Data;
echo "</pre>";

最佳答案

failed, couldn't read the file, it is too big

这是您的 PHP 配置文件限制的问题。您可以在 php.ini 中将其更改为:

memory_limit = 200M

或者将以下内容添加到您的 PHP 脚本中:

ini_set('memory_limit', '200M');
<小时/>

I don't know how to extract the numbers using PHP

为了获取值,您可以使用如下内容:

$fh = fopen('a.txt', 'r');
$Data = fscanf($fh, '{"requestId":"%d","responseId":"%d","time":"%d","opacity":"%f"}');

print_r($Data);

这将输出如下内容:

Array
(
    [0] => 1
    [1] => 1
    [2] => 11
    [3] => 0.6
)

请注意,在上面的代码中,我假设您的文件有多行 '{"requestId":"%d","re​​sponseId":"%d","time":"%d","不透明度":"%f"}' 。您可以将其更改为您想要的任何内容

关于php - 使用 PHP 从文件中读取大型 js 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15709631/

相关文章:

php - 在 CakePHP 的 Router 文件中获取 Controller 名称和 SQL 查询?

php - 在 PHP 中将字符串序列化为数组

php - 使用 PHP PayPal REST API 退款?

javascript - Coffeescript Ajax——无法让变量在函数之外工作?

javascript - 如何使用值数组作为参数发出原型(prototype) ajax 请求?

php - PHP 中的 Javascript 变量

javascript - 如何使用 jquery-footable 创建过滤器下拉列表?

javascript - 使用带标志的 javascript filter()

python - 下拉列表更改后来自模板的 Django AJAX 调用/url

ajax - jQuery.ajax() 到 json url 返回一个字符串而不是 json 对象