2014-11-04 2 views
0

Это работает на моей тестовой среде, но на моем живом сервере есть более поздняя версия PHP, который вырвет ошибку и ломать мою программуPHP массив нарушение

Код

$oldFile = fopen("D:/ftpfolderreport/report/" . $last_file, "r"); 
while(!feof($oldFile)) 
{ 
$buffler = fgets($oldFile); 
$bufflerArray = explode(",", $buffler); 
$key = $bufflerArray[0]; 
$oldFileArray[$key] = $bufflerArray[1]; 
} 
fclose($oldFile); 

Это линия:

$oldFileArray[$key] = $bufflerArray[1]; 

выкидывает эту ошибку

Notice: Undefined offset: 1 in D:\apps\wamp\www\Compliance2\compareFtpReports.php on line 57 

Я думаю, что это связано с тем, как я добавляю переменную $ key внутри аргумента. Я пробовал это как ["$ key"] и ['$ key'], но ему это не нравится.

Я попытался определить ключевую переменную ранее в программе, но ей все равно не нравится. Я искал в Интернете, но ничего не могу найти. Какие-нибудь идеи?

Thanks, Stephen.

+0

пожалуйста, покажите нам линию или 2 из файла, поэтому мы понимаем, что здесь происходит. – CodeBird

+1

'print_r'' $ buffler' перед тем, как взорвать строку, чтобы увидеть, где она спотыкается. Скорее всего, конечная пустая строка. Btw, есть функция 'file()' или 'SplFileObject' для чтения строк. – mario

+1

Это означает, что в массиве '$ bufflerArray' нет элемента с ключом' 1'; – Steve

ответ

1

добавить чеки на пустой

if (!empty($bufflerArray[1])) { 
    $key = $bufflerArray[0]; 
    $oldFileArray[$key] = $bufflerArray[1]; 
} 
+0

Спасибо Sgt, отлично работает –