Ich habe ein Verzeichnis mit mehr als 10K JSON-Dateien und ich muss sie alle analysieren. Die Parse-Funktion funktioniert sehr gut für 1 Datei, aber ich sehe nicht, wie man jede Datei im Verzeichnis wiederholt.Wie zu `file_get_contents()` mehrere Dateien?
Controler:
public function parseFile()
{
$em = $this->getDoctrine()->getManager();
$em->getRepository('NcstoxBundle:JsonTextMining');
foreach (glob('*.json') as $file) {
set_include_path('/home/landreau/workspace/NCSTOX/web/assets/json/sample-json');
$json = file_get_contents($file, FILE_USE_INCLUDE_PATH);
$array = json_decode($json, true);
var_dump($json);
print_r($array);
foreach ($array as $item) {
$jsonTextMining = new JsonTextMining();
$jsonTextMining->setSolrId($item['id']);
$jsonTextMining->setOriginalPaper($item['Original_paper']);
$jsonTextMining->setAnnotatedFile($item['Annotated_file']);
$jsonTextMining->setTitle($item['Title']);
foreach ($item['Molecule'] as $mol) {
$jsonTextMining->setMoleculeName($mol['Main name']);
}
$jsonTextMining->setSynonymName($item['Molecule'][0]['Synonyms']);
$jsonTextMining->setKeyword($item['ToxKeywords']);
$jsonTextMining->setImportantSentence($item['Important_sentences'][0]);
$em = $this->getDoctrine()->getManager();
$em->persist($jsonTextMining);
}
}
$em->flush();
return new Response('Saved new document with id ');
}
Ich versuchte glob()
Funktion, aber die Schleife endet ohne etwas zu speichern.
Hat jemand eine bessere Syntax kennen, um alle Dateien im Verzeichnis zu durchlaufen und dann file_get_contents()
sie?
Verwenden Sie die Dateisystem-Komponente symfony alle Dateien in diesem Verzeichnis verwenden können, lesen und dann für jede Datei, um den Inhalt zu bekommen. –
Danke, ich habe mir nur die Dokumentation darüber angesehen und es könnte eine gute Lösung sein und ich habe etwas gelernt – Gy0m