PHP-File mit php aufrufen/parsen?
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
aufbauen
aufgabe
code
computer
dank
ergebnis
file
funktionieren
http
linie
netzwerk
nutzen
paket
problem
realisieren
sekunde
verbindung
verteilen
warten
zimmer
-
Ich würde gerne im Netzwerk an einen Computer (nenne ihm mal Main-Node) einen PHP-Skript auf anderen Computern (Sub-Node's) parsen und das Ergebnis auslesen lassen.
Dabei muss ich aber den Skript am Sub-Node eine Get-Variable übermitteln, damit er weiß was er zu tun hat.
Habe keinen Plan wie das lösbar wäre (bzw. ob es überhaupt geht).
Ach ja, und wenn möglich soll der Skript am Main nicht warten bis der aufgerufene fertig ist, sondern wärenddessen weitermachen.
Will damit ne Lastenverteilung realisieren, und sonst würde das nichts bringen. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
<?php $file = file_get_contents ('http://sub-node/php-script.php?blub=bla'); // $file enthält das Ergebnis von php-script.php?blub=bla auf Sub-Node ?>
Wo ist denn da das Problem?
Wenn du nicht warten willst, bis Sub-Node fertig ist, dann solltest du vllt einfach nur einen Socket Verbindung aufbauen mit einem sehr kurzem Timeout. Allerdings bekommst du dann auch kein Ergebnis zurückgeliefert.
MfG Lucas -
Danke.
Das Problem war in erster Linie dass ich den Befehl nicht kannte.
Wäre es in dem Fall besser vielleicht zuerst nacheinander das File auf den Sub-Node's aufzurufen, was das Ergebniss nicht direkt zurückgibt sondern local in ein File speichert, und dann nacheinander wieder ein 2. File was dann einfach das Ergebniss ausließt? Somit wäre der Main wärend der erste Sub rechnet damit beschäftigt die Aufgaben auf die anderen zu verteilen, und es würde meiner Meinung nach zu keiner Verzögerung kommen, oder? -
Dafür müsstest du dann allerdings eine Socketverbindung mit einem sehr kurzem Timeout aufbauen, denn der Timeout bei "file_get_contents ()" etc. ist relativ hoch. Oder du stellst es in der php.ini um.
Du "pingst" folglich mit der Socketverbindung die Dateien auf allen Subnodes(-> Subnodes fangen an zu arbeiten) nacheinander an -> Danach fängst du bei dem zuerst angepingten Subnode an und fragst die Ergebnisse nacheinander ab, in dem du nun "file_get_contents ()" oder eine äquivalente Funktion nutzt.
MfG Lucas
P.S.: Wofür willst du das nutzen? Oo
Wenn es wirklich um Performance geht, dann sollte man nicht gerade PHP, sondern C++ oder noch besser direkt Assembler, nutzen. ^^
Beitrag geändert: 25.11.2007 16:41:24 von lucas9991 -
Würde das also z. B. so funktionieren?
<?php
$connection = fsockopen("192.168.1.4/file2.php?v=1", 80);
stream_set_timeout($connection,1);
$connection = fsockopen("http://192.168.1.5/file2.php?f=1", 80);
stream_set_timeout($connection,1);
$file = file_get_contents('http://192.168.1.4/file2.php?f=1');
echo $file;
$file = file_get_contents('http://192.168.1.4/file2.php?f=1');
echo $file;
?>
Timeout ist aber im eigenen Netzwerk doch eigendlich unnötig, oder? Verbindung sollte immer hergestellt werden können.
Aber ich habe ein paar Rechner in meinen Zimmer rumstehen, und dachte mir dass ich mal versuche sie für irgend eine Aufgabe zu vernetzen.
Und PHP ist die einzige Sprache, die ich wenigstens halbwegs kann. -
Sollte an sich so funktionieren.
Ich würde allerdings den Timeout auf 3 Sekunden setzen, da immer mal etwas länger dauern kann - auch im eigenen Netzwerk.
Sollte z.B. das Paket verloren gehen, dann würde wieder der normale Timeout benutzt, also lieber mit angeben.
edit:
Du hast die Adressen ein bisschen durcheinander gebracht.
Beitrag geändert: 25.11.2007 17:40:49 von lucas9991 -
Danke.
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage