file_get_contents() oder fsockopen() ?

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Gast210225

file_get_contents() oder fsockopen() ?

Beitrag von Gast210225 »

Hallo,
ich meinem CMS soll eine Datei vom Server abgerufen werden. Eigentlich gibts da ja jetzt 2 Möglichkeiten:
  • file_get_contents('http://localhost/test/eine_datei.txt');
    • Nachteil: Geht nicht, wenn allow_url_fopen in der php.ini deaktiviert wurde...
    • Vorteil: Viel einfacher als fsockopen();
  • $pointer = fsockopen('http://localhost/');
    fputs($pointer, "GET /test/eine_datei.txt' HTTP/1.1\r\n");
    • Nachteil: Viel Aufwand
    • Geht auch, wenn allow_url_fopen deaktiviert wurde.
Was würdet ihr nehmen?

Viele Grüße,
Johannes
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Mit der Methode über die Sockets hast auf jeden Fall mehr Flexibilität. Es funzt auch mit PHP vor 4.3, du hast Kontrolle über den Timeout usw.
Allerdings würde ich per HTTP/1.0 abfragen - das ist i.d.R. schneller

Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
Gast210225

Beitrag von Gast210225 »

Hallo,
wie würde dann eine Abfrage mit HTTP/1.0 aussehen?

Edit:
das hier geht nicht (es wird "Error" augegeben)

Code: Alles auswählen

function get_file()
{
	if ( $pointer = fsockopen('localhost', 80, $errno, $errstr, 5) )
	{
		fputs($pointer, "GET / HTTP/1.0\r\n\r\n");

		while ( !feof($pointer) )
		{
			echo fgets($pointer, 1024);
		}
	}
	else
	{
		return false;
	}
}
Weiß jemand, was ich falsch mache?

Viele Grüße,
Johannes
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Dann lass dir doch mal die Fehlermeldung in $errno und $errstr ausgeben.

Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
Gast210225

Beitrag von Gast210225 »

Hmm, nun gehts...
aber ich hab beschlossen, dass ich nun doch get_file_contents() verwende... Das CMS läuft sowieso erst ab PHP 4.3...
Antworten

Zurück zu „Coding & Technik“