Sei sicuro che $nomefile contenga realmente l'apostrofo? Nel verificarlo, accertati che html non ti stia mentendo: quell'apostrofo potrebbe essere una entità html. Escludo a priori che si tratti di un problema di encoding, in quanto il parser può lavorare solo con un file codificato in ascii, o per lo meno che lo abbia come sottoinsieme, per cui quell'apostrofo è proprio quello, non ci sono ambiguita. Escludo anche che $nomefile abbia una codifica così esotica da non aver ascii come sottoinsieme. Quindi, per quanto mi riguarda, il problema è che $nomefile non contiene apostrofi. Verificalo.