Denn ich brauche eigentlich hier in dem konkreten Fall nur die ersten 50 Zeilen, weil ich später nach einem bestimmten Vorkommen von Zeichen prüfen möchte.
Gibt es denn noch eine "bessere", saubere Methode oder etwas was weniger Ressourcen braucht als mit fopen...
Einfach mal ungetestet in den Raum geworfen...
Eventuell funktioniert in deinem Fall auch parse_url, fsockopen, fwrite, stream_set_timeout und besonders fread mit zweitem Parameter.
Hier mal ein Ausschnitt eines Scripts von mir.
$this->strRequestUrl = 'https://www.domain.tld/your.file';
$arrParsedUrl = parse_url($this->strRequestUrl);
if(!$resSocket = @fsockopen('ssl://'.$arrParsedUrl['host'], 443, $intErr, $strErr, 5)){
$this->strError = 'failed to establish a connection to "'.$this->strRequestUrl.'" [ '.$intErr.', '.$strErr.' ]';
throw new Exception($this->strError);
}
$strHeader = 'GET '.$arrParsedUrl['path'].'?'.$arrParsedUrl['query'].' HTTP/1.1'.CRLF.'Host: '.$arrParsedUrl['host'].CRLF.'Connection: Close'.CRLF.CRLF;
fwrite($resSocket, $strHeader);
stream_set_timeout($resSocket, 5);
do{
if(strlen($strInput = fread($resSocket,1024))==0){
break;
}
$this->strRawData .= $strInput;
}while(true);
Grüße, Matze