mit php inhalt einer externen datei auslesen

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
Benutzeravatar
Spezial
Mitglied
Beiträge: 135
Registriert: 15.07.2004 08:53
Wohnort: Braunschweig
Kontaktdaten:

mit php inhalt einer externen datei auslesen

Beitrag von Spezial »

moin!

also wie ich mittlerweile festgestell habe geht das mit fsockopen() etc. also, einen port zum internet öffnen, eine bestimmte datei auf einem bestimmten server zu öffnen und den inhalt auszulesen...jetzt wollte ich fragen, ob es eine möglichkeit gibt, so eine seite zu öffnen und dann ein sich dortbefindiges post-formular auszufüllen und abzuschicken? und ist es dann widerum auch noch möglich, dass was in einer bestimmten datei steht auszulesen und je nachdem, was dort steht, eine andere ausgabe zu machen?

versteht ihr das? ^^ wenn ja, kann mir evtl. jemand erklären wie dsa geht? (:

greetz
Wenn Chuck Norris ins Wasser fällt, wird er nicht nass…aber das Wasser wird Chuck Norris.
Sebastian R.
Mitglied
Beiträge: 328
Registriert: 18.03.2006 23:21
Kontaktdaten:

Beitrag von Sebastian R. »

Du bist dir sicher, dass du weißt was fsockopen() macht? Die Socket-Funktionen bieten dir bei PHP nur eine Schnittstelle um per TCP oder UPD (bzw. irgendeinem anderen Protokoll) zu kommunizieren. Um eine Datei auf einem Webspace abzufragen (downzuloaden) müsstest du FTP Zugang haben und würdest dann per FTP-Protokoll auf die Datei zugreifen.

Da du aber Formulare ausfüllen willst, kannst du diese Funktionen nicht benutzen, denn sie bieten dir keine Browser-Schnittstelle, sondern nur Funktionen für TCP etc.
Modeinbau, Banner- und Grafik-Design - gegen einen kleinen Aufpreis! Mail: sebastian@rayloaded.de oder per PN

Rayloaded.de - Your programmers heaven.
fanrpg
Mitglied
Beiträge: 2909
Registriert: 13.12.2004 22:41

Beitrag von fanrpg »

Erzähl mal keinen Mist :D
mit fsockopen() kann man auch eine http Abfrage ausführen.
mit fputs() einfach dann einen dementsprechenden POST Header senden.
Benutzeravatar
Spezial
Mitglied
Beiträge: 135
Registriert: 15.07.2004 08:53
Wohnort: Braunschweig
Kontaktdaten:

Beitrag von Spezial »

Ne, bin ich ja eben nicht sicher ;)
Verstehs sowieso net ganz richtig so...Aber man kann schon mit PHP, irgendwie eine Seite im Internet öffnen, oder? Wie macht z.B. phpBB das, im ACP wo es auf die neueste Version prüft? Da wird auch einfach nur der Inhalt der Textdatei: http://www.phpbb.com/updatecheck/20x.txt ausgelesen und anhand dieser erkannt ob die aktuellste Version da ist. Also, wie macht es das, wenn es nur über FTP geht? Im Quelltext steht an dieser Stelle:

Code: Alles auswählen

// Check for new version
$current_version = explode('.', '2' . $board_config['version']);
$minor_revision = (int) $current_version[2];

$errno = 0;
$errstr = $version_info = '';

if ($fsock = @fsockopen('www.phpbb.com', 80, $errno, $errstr, 10))
{
	@fputs($fsock, "GET /updatecheck/20x.txt HTTP/1.1\r\n");
	@fputs($fsock, "HOST: www.phpbb.com\r\n");
	@fputs($fsock, "Connection: close\r\n\r\n");

	$get_info = false;
	while (!@feof($fsock))
	{
		if ($get_info)
		{
			$version_info .= @fread($fsock, 1024);
		}
		else
		{
			if (@fgets($fsock, 1024) == "\r\n")
			{
				$get_info = true;
			}
		}
	}
	@fclose($fsock);
	
	usw...
edit:
fanrpg hat geschrieben:Erzähl mal keinen Mist :D
mit fsockopen() kann man auch eine http Abfrage ausführen.
mit fputs() einfach dann einen dementsprechenden POST Header senden.
Und wie genau sende ich dann den POST header? Also wie setze ich die einzelnen POST-variablen? ^^ danke schonmal (:

greetz
Wenn Chuck Norris ins Wasser fällt, wird er nicht nass…aber das Wasser wird Chuck Norris.
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

Installier dir am besten mal das Firefox-Plugin LiveHTTPHeaders, dort kannst du genau sehen was beim Aufrufen von Seiten bzw. Abschicken von Formularen übertragen wird, das musst du dann nur noch nachbauen.

Alternativ lies die Doku, sprich die RFC für HTTP 1.0 und 1.1 - das ist aber etwas aufwändiger :D
KB:knigge
Sebastian R.
Mitglied
Beiträge: 328
Registriert: 18.03.2006 23:21
Kontaktdaten:

Beitrag von Sebastian R. »

fanrpg hat geschrieben:Erzähl mal keinen Mist :D
mit fsockopen() kann man auch eine http Abfrage ausführen.
mit fputs() einfach dann einen dementsprechenden POST Header senden.
Klar, aber kein Formular ausfüllen! :D
Außer du übergibst die Parameter direkt an ein php-Skript.
Modeinbau, Banner- und Grafik-Design - gegen einen kleinen Aufpreis! Mail: sebastian@rayloaded.de oder per PN

Rayloaded.de - Your programmers heaven.
fanrpg
Mitglied
Beiträge: 2909
Registriert: 13.12.2004 22:41

Beitrag von fanrpg »

Sebastian R. hat geschrieben:
fanrpg hat geschrieben:Erzähl mal keinen Mist :D
mit fsockopen() kann man auch eine http Abfrage ausführen.
mit fputs() einfach dann einen dementsprechenden POST Header senden.
Klar, aber kein Formular ausfüllen! :D
Außer du übergibst die Parameter direkt an ein php-Skript.
Kommt das nicht am Ende aufs selbe raus? :wink:
Benutzeravatar
Spezial
Mitglied
Beiträge: 135
Registriert: 15.07.2004 08:53
Wohnort: Braunschweig
Kontaktdaten:

Beitrag von Spezial »

also muss ich dann via fputs sowas in der art übergeben:

Code: Alles auswählen

Content-Type: application/x-www-form-urlencoded
Content-Length: XX
variable=value&variable_zwei=value_zwei
XX muss ich dann nur noch ersetzen mit der länge der kompletten zeile?

ist das so richtig?

greetz
Wenn Chuck Norris ins Wasser fällt, wird er nicht nass…aber das Wasser wird Chuck Norris.
Antworten

Zurück zu „Coding & Technik“