【发布时间】:2017-06-21 13:36:49
【问题描述】:
我有一个包含超过 10K json 文件的目录,我需要全部解析它们。解析函数对 1 个文件非常有效,但我看不到如何循环目录中的每个文件。
控制器:
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 ');
}
我尝试glob() 函数,但循环结束时没有保存任何内容。
是否有人知道更好的语法来遍历目录中的所有文件,然后 file_get_contents() 他们?
【问题讨论】:
-
使用 Filesystem symfony 组件读取该目录下的所有文件,然后获取每个文件的内容。
-
谢谢,我刚刚查看了有关它的文档,这可能是一个很好的解决方案,我学到了一些东西