可能还有其他方法可以做到这一点,但我正在寻找一种相当简单的设置,因为它基本上是一个一次性的过程。
我有 50 个状态目录,每个目录中有几个 txt 文件。
我想进入每个目录,“读取”每个文件(然后对每个文件进行 mysql 插入)
我尝试了一些变体,但是每次我尝试循环并使用 readfile 或 file_get_contents 时,它都会在第一个文件之后中断,并且我无法打开流:列表其余部分的错误。
我已经搜索了在循环中使用这些函数的陷阱,期待许多不这样做的原因,但没有得到答案。
谢谢回来添加示例代码 - 我看到列出了一个答案,所以我也会检查一下。(这些都不是我的,我只是随便找了个抓文件列表的函数)
函数 listFilesInDir($start_dir)
{
/*
返回 $start_dir 中的文件数组(非递归)
*/
$files = 数组();
$dir = opendir($start_dir);
而(($myfile = readdir($dir)) !== false)
{
if($myfile != '.' && $myfile != '..')
{
$文件[] = $我的文件;
}
}
关闭($dir);
返回$文件;
}
$dir = '路径/到/文件';
$Docs = listFilesInDir($dir);
foreach($Docs as $key => $fileName)
{
// 这里是我尝试使用 file_get_contents 的地方
$content = file_get_contents($fileName);
//即使做一个回显作为测试也会在第一个文件之后破坏它
回声$内容;
//最终我会在这里为mysql做INSERT INTO
}