Значится, пишу такую штуку:
PHP:if ($imp_type==1) {
#Echo $imp_type.'__'.$csvfile;
$_SESSION['csvfile']=$csvfile;
$handle = fopen ($csvfile, 'r');
lock_file($handle); #процедура спёрнута из ExBB.
$data = fgetcsv ($handle, 1000, ';');
#$num = count ($data);
for ($c=0; $c < 10; $c++)
{
$head .= '<td>'.$data[$c].'</td>';
$equal .= '<td><select name="equal['.$c.']">';
foreach ($db['headers'] as $value => $title){
$equal .= '<option value="'.$value.'"';
if($headers == $value) {
$equal .= 'selected';
}
$equal .= '>'.$title.'</option>';
}
$equal .= '</select></td>';
}
fclose ($handle);
}
При первой загрузке CSV-файла всё нормально, а при повторной - он не может открыть поток, и лечится только перезапуском бровзера.
При том, что файл должен открываться дважды:
Первый раз для этой процедуры, когда извлекаются заголовки и предлагается показать соответствие заголовков и полей в базе.
Второй раз - для перевода содержимого файла в базу, в соответствии с указанными полями.
Почему так? |