簡體   English   中英

使用PHP從文件中讀取大型js數組

[英]read large js array from a file using PHP

我正在嘗試從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>";

失敗了,無法讀取文件,實在是太大了

這是PHP配置文件限制的問題。 您可以在php.ini中將其更改為:

memory_limit = 200M

或者將以下內容添加到PHP腳本中:

ini_set('memory_limit', '200M');

我不知道如何使用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","responseId":"%d","time":"%d","opacity":"%f"}' 您可以將其更改為您想要的任何內容

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM