2017-10-16 12 views
0

Ich arbeite mit einer riesigen 40 GB JSON-Datei und verwende JSON Pull-Parser für PHP 7, um Daten aus der riesigen Datei zu extrahieren. Hier ist my dummy json file.Schwerwiegender Fehler: Uncaught Fehler: Klasse "IntlChar" nicht gefunden

Ich mag Daten von Attribute „entityStatusDescription“ in Form einer Tabelle, wie so extrahieren:

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

ich in der Lage bin Daten aus anderen Attributen zu extrahieren, aber wenn Daten aus Attribute Extrahieren entityStatusDescription, gibt es nur wenig Zeilen, die extrahiert wurden und dann gibt es einen Fehler:

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

Ich werde mich freuen für Hilfe. Hier ist mein Code:

<?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

Wie werden Sie die 'JsonReader' zu installieren? Laut seiner Datei ['composer.json'] (https://github.com/pcrov/JsonReader/blob/master/composer.json#L21) benötigt es die Erweiterung 'ext-intl'. Sie hätten nicht in der Lage sein, es ohne diese Erweiterung zu installieren – Phil

Antwort

2

Wenn Sie diese Fehlermeldung erhalten, müssen Sie die Intl-Erweiterung installieren.

Bitte beachten Sie die PHP-Handbuch:

+0

Danke. Ich habe die folgenden Schritte unter Berücksichtigung, dass ich Windows verwendet: (1) Sichern Sie meine HTDocs-Ordner in XAMPP. (2) deinstalliere xampp, (3) installiere xampp neu, (4) öffne die php.ini-Datei im Verzeichnis xampp \ php und entferne einfach die Erweiterung "extension = php_intl.dll", indem du das vorangestellte Semikolon entfernst (5) Downloaden und starten Sie "Composer-Setup.exe", (6) installieren Sie den Streaming-Pull-Parser "pcrov/jsonreader". Dies geschieht durch Einfügen von "composer require pcrov/jsonreader" an der Eingabeaufforderung, in dem Verzeichnis, in dem es sein soll (z. B. \ xampp \ htdocs). Danach habe ich die Fehlermeldung nicht. – William

+0

Das Auskommentieren der Erweiterung in Ihrer php.ini war dann der entscheidende Schritt. – Gordon

Verwandte Themen