2013-03-10 7 views
0

Я пытаюсь открыть несколько файлов, а затем разделить каждый файл за строкой. Я использую это с одним foreach() для просмотра файлов, а другой - foreach(), чтобы разделить строки файла.php 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 пуст.

+1

вы можете поместить 'print_r ($ lines);' прямо после '$ lines = file ($ myFile);' и сообщить результат здесь? –

+6

Вы используете '$ myfile' и' $ myFile'. – TaZ

+2

@TaZ, те глаза орла. – Shoe

ответ

0

Я подозреваю, что ваш $fh = fopen($myfile,'r') заблокировал файл, так что file() не имеет доступа к нему. Вы, кажется, не используете этот дескриптор файла (действительно, вы переписываете переменную позже), поэтому просто удалите эту строку, и вы должны быть хорошими.

EDIT: О, и, видимо, переменные имена чувствительны к регистру. Вы не можете обменять $myfile и $myFile.