Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
foreach()中的php foreach()_Php_File_List_Foreach_Lines - Fatal编程技术网

foreach()中的php foreach()

foreach()中的php foreach(),php,file,list,foreach,lines,Php,File,List,Foreach,Lines,我试图打开多个文件,然后按行分割每个文件。我使用它与一个foreach()一起浏览文件,并在其中使用另一个foreach()来拆分文件行 $dir = '../mydir'; $files = scandir($dir, 1); foreach($files as $input){ if(($input!==".")&&($input!=="..")){ $myfile="../mydir/".$input; $fh = fopen($my

我试图打开多个文件,然后按行分割每个文件。我使用它与一个
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
是空的。

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


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

你能把
打印出来吗紧跟在
$lines=file($myFile)之后并在这里报告结果?您正在使用
$myfile
$myfile
@TaZ,这些鹰眼。是的,它是小写/大写的,所以请查看
glob()
file()
str_getcsv()
以最小化代码。请注意,您不是在创建Excel文件,而是在创建
.csv
输出。