Hallo,
while($gclist[]=trim(fgets($fp)));
Da liegt der Hase begraben. "0" ist nämlich in PHP auch false. Und false durch trim jagen ist auch nicht hilfreich.
Mach lieber so etwas:
while (($gcelem = fgets($fp)) !== false) $gclist[] = $gcelem;
(Zum === und !== liest Du Dir besser mal das PHP-Handbuch durch.)
Viele Grüße,
Christian