2017-10-16 184 views
0

我有一个巨大的40GB JSON文件的工作,我使用JSON解析器拉为PHP 7提取从巨大的文件数据。这里是my dummy json file致命错误:未捕获的错误:类“IntlChar”未找到

我想在一个表的形式,从而提取属性“entityStatusDescription”数据:

`ENTITYSTATUSDESCRIPTION` 
     `removed` 
    `registered` 
     `removed` 
     `removed` 
    `registered` 
     `removed` 

我能提取其他属性数据,而是从属性entityStatusDescription提取数据时,只有少数中提取的,然后有一个错误行:

Fatal error: Uncaught Error: Class 'IntlChar' not found in E:\xampp\htdocs\vendor\pcrov\jsonreader\src\Parser\Lexer.php:285 Stack trace: #0 E:\xampp\htdocs\vendor\pcrov\jsonreader\src\Parser\Lexer.php(161): pcrov\JsonReader\Parser\Lexer->evaluateEscapedUnicodeSequence() #1 E:\xampp\htdocs\vendor\pcrov\jsonreader\src\Parser\Lexer.php(191): pcrov\JsonReader\Parser\Lexer->evaluateEscapeSequence() #2 E:\xampp\htdocs\vendor\pcrov\jsonreader\src\Parser\Lexer.php(101): pcrov\JsonReader\Parser\Lexer->evaluateDoubleQuotedString() #3 [internal function]: pcrov\JsonReader\Parser\Lexer->getIterator() #4 E:\xampp\htdocs\vendor\pcrov\jsonreader\src\Parser\Parser.php(180): IteratorIterator->next() #5 E:\xampp\htdocs\vendor\pcrov\jsonreader\src\Parser\Parser.php(152): pcrov\JsonReader\Parser\Parser->parsePair() #6 E:\xampp\htdocs\vendor\pcrov\jsonreader\src\Parser\Parser.php(205): pcrov\JsonReader\Parser\Parser->parseObject() #7 E:\xampp\htdocs\vendor\pcrov\jsonreader\src\Parser\Parser.php(123): pcrov\JsonReader\Parser\Parser->parseValue in E:\xampp\htdocs\vendor\pcrov\jsonreader\src\Parser\Lexer.php on line 285

我会很乐意帮忙。这里是我的代码:

<?php 
    require_once "E:/xampp/htdocs/vendor/autoload.php";  
    use \pcrov\JsonReader\JsonReader; 
    ini_set("max_execution_time", 0); 
    $reader = new JsonReader(); 
    $reader->open("jsonfile.json");  
    $fo = fopen("csvfile.csv", "w"); 
    fputs($fo, "companyStatus".PHP_EOL); 
    while($reader->read()) { 


     if ($reader->read("entityStatusDescription")){ 
      $entityStatusDescription = $reader->value(); 
     } 
     fputs($fo, $entityStatusDescription.PHP_EOL); 

    } 
    $reader->close(); 
+0

你如何安装'JsonReader'?据其['composer.json'](https://github.com/pcrov/JsonReader/blob/master/composer.json#L21)文件,它要求'EXT-intl'扩展。你不应该已经能够在没有该扩展 – Phil

回答

2

当您收到此错误消息时,您需要安装Intl扩展。

请参考PHP手册:

+0

感谢安装。我采取了以下步骤铭记我使用Windows:(1)备份我的htdocs文件夹在xampp。 (2)卸载xampp,(3)重新安装xampp,(4)打开xampp \ php目录中的php.ini文件,并简单地通过删除前面的分号取消扩展名“extension = php_intl.dll” )下载并运行 “作曲-的Setup.exe”,(6)安装被称为 “pcrov/jsonreader” 流pull解析器。这是通过粘贴完成“作曲家需要pcrov/jsonreader”的命令提示符下,你希望它是目录(例如\ XAMPP \ htdocs中)。此后,我没有错误消息。 – William

+0

在取消在php.ini延伸当时的至关重要的一步。 – Gordon

相关问题