【问题标题】:php foreach() in foreach()php foreach() 在 foreach()
【发布时间】:2013-03-10 17:11:35
【问题描述】:

我正在尝试打开多个文件,然后逐行拆分每个文件。我将它与一个 foreach() 一起使用来浏览文件,并在其中使用另一个 foreach() 来拆分文件的行。

$dir = '../mydir';
$files = scandir($dir, 1);
foreach($files as $input){
    if(($input!==".")&&($input!=="..")){
        $myfile="../mydir/".$input;
        $fh = fopen($myfile, 'r');
        echo $input."... ";
        $input = substr($input,0,-4);
        $FN = "../mydir/out.".$input.".xls";
        $FH = fopen($FN, 'w') or die("Can't open file!");
        $lines = file($myFile);
        foreach($lines as $line) {
        list($OPT1,$OPT2) = explode(",", $line);
            fwrite($FH, $OPT1);     
        }
        echo "Done.";
    }
}

但是我的$OPT1 是空的。

【问题讨论】:

  • 您能在$lines = file($myFile); 后面加上print_r($lines); 并在此处报告结果吗?
  • 你正在使用$myfile$myFile
  • @TaZ,那双鹰眼。
  • 是的,它是小写/大写 F
  • 还可以查看 glob()file()str_getcsv() 以最小化您的代码。请注意,您创建的不是 Excel 文件,而是 .csv 输出。

标签: php file list foreach lines


【解决方案1】:

我怀疑您的$fh = fopen($myfile,'r') 正在锁定文件,因此file() 无法访问它。您似乎没有使用该文件句柄(实际上您稍后会覆盖该变量)所以只需删除该行就可以了。

编辑:哦,显然变量名是区分大小写的。 $myfile$myFile 不能互换。

【讨论】:

    猜你喜欢
    • 2011-12-11
    • 2012-01-27
    • 1970-01-01
    • 2015-04-04
    • 1970-01-01
    • 2014-04-30
    • 2012-03-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多