// das hier wird ingnoriert,wie geht es korrekt
if ($zeile2[0]==""){
Das ist eine Unsitte die auch in JS Code zu finden ist.
Es wird immer und überall mit einem Leerstring verglichen, um zu testen ob eine Funktion einen gültigen Wert zurückgegeben hat oder nicht.
Das ist Murks!
Entweder prüfe auf den entsprechenden Typ, bzw. das gegenteil davon (also ein Leerstring, wenn die Funktion einen String zurückgibt, eine Null, wenn du eine Zahl erwartest, null bei einem Objekt und false bei einem bool'schen Rückgabewert) oder wenn du unbedingt die Typumwandlung einer Skriptsprache nutzen möchtest, dann mach es einfach so: if($zeile2) oder if(!$zeile2)
Struppi.