leggere solo 100 byte non conviene, praticamente tutti i sistemi operativi leggono 8kb per volta quindi leggere la stessa quantità letta dal sistema operativo è estremamente più efficente (chiamare fopen per leggere 100 byte per volta vuol dire devi chiamare l'fread 82 volte per leggere i dati che lui ha letto in un colpo)

detto questo, c'è la comoda funzione file_get_contents ( www.php.net/file_get_contents ) se non hai bisogno di funzionalità particolari (ad esempio il parsing mentre leggi, oppure se il file lo devi inviare direttamente al browser senza però tenerlo in memoria e via dicendo)

per finire, i problemi relativi ad errori nella lettura di pagina html restituite da webserver possono essere dovuti ad un flag presente nel php.ini che "disattiva" questo tipo di streams (http://, ftp:// e via dicendo) per fopen ... la direttiva è questa http://www.php.net/manual/en/filesys...llow-url-fopen e la si può verificare tramite un phpinfo() ... anche se c'è scritto fopen fa riferimento a tutte le funzioni che accedono ai dischi tramite stream ed in realtà può essere bypassata con facilità se si ci scrive un wrapper che gestisce la cosa

ad esempio se si ci scrive uno stream wrapper ( http://php.net/manual/en/book.stream.php ) che utilizza le curl, se presente, o ancora meglio fsockopen o le socket si bypassa in toto il problema: ovviamente se il provider blocca le richieste sulla porta 80 in uscita ... c'è poco da fare