pfsockopen

fanste

Erfahrenes Mitglied
Hallo,

Ich habe eine Frage zu der Funktion pfsockopen().
Wenn man mit ihr eine Verbindung zu einem Server herstellt, wird diese ja nicht getrennt, wenn das Script beendet wird. Wenn man dann ein weiteres Script aufruft, auf der man diese Verbindung verwenden will, muss man die dann dennoch neu herstellen, oder wie funktioniert das?

Die PHP Dokumentation ist da nicht sehr informativ.

mb fanste

PS: Ich danke schonmal für eure Bemühungen.
 
Ich glaube du hast mich falsch verstanden.
Bei pfsockopen() wird ja eine ständige Verbindung hergestellt. Ich wollte wissen, ob man diese Verbindung in einem weiteren Script weiterverwenden kann, oder ob man Sie dennoch neu erstellen muss. Ich wollte nicht wissen, wie man diese schließt (das ist mir bereits bekannt ;) )

Trotzdem danke für deine Hilfe.
 
du kannst deine verbindungsdaten in eine Variable packen und sie in jedes Scrpt einbinden, das spart einen Haufentipparbeit.
Aber wenn ein Script erst einmal beendet ist, kannst du die Verbindugn natürlich nicht weiterverwenden.
Hoffe ich habe deine Frage richtig verstanden ;)
 
OK. Wenn man sie nicht weiterverwenden kann, muss ich halt jedesmal neu connecten.
Dann würde mir wahrscheinlich auch fsockopen() genügen. Wenn die Verbindung nur für die Laufzeit des Scripts verwendbar ist, brauch ich keine dauerhafte.

mb fanste
 
Wofür gibt es dann pfsockopen(), wenn man die Verbindung nicht nach Ablauf des Scriptes erneut ohne reconnecten weiter verwenden kann?
 
http://de.php.net/pfsockopen hat gesagt.:
pfsockopen is useful for having scripts executing others in the background.

I'm writing an intra-site search engine with spidering capabilities. To spider a ~200 page site and index all the text takes about 60 seconds. Because I don't want the user waiting 60s for the script to finish and thinking it's timing out, I use pfsockopen to have the server open an HTTP connection with itself to execute the script in the background. Once the spidering is done, the connection is closed without capturing the HTTP response. The output isn't important, the spidering is!

I just make the script execute the following:

<?php

$st = pfsockopen($_SERVER['HTTP_HOST'], 80, $erstr, $errno, 5);
fwrite($st, "GET {$_SERVER['PHP_SELF']}?$key HTTP/1.0\r\nHost: {$_SERVER['HTTP_HOST']}\r\n\r\n");

?>

Where $key is the QUERY_STRING trigger which starts the spidering process. This script is executed in the background while the main script is free to finish loading and display a message like: "The database is being reindexed, please wait."

BTW, I set a flag in another MySQL table which prevents searches while the spider is crawling.

Aber es muss auch mehr damit zu machen sein, da stimm ich dir zu.

mb fanste

:offtopic:
PS: @Katzenbauer: Ich habs geschafft. Dein Programm ist KLasse. Danke nochmals dafür
 
Wenn man fclose() nicht benutzt, dann bleibt die Verbindung auch nach dem Script Ende weiterhin aufgebaut. Die Schwierigkeit liegt darin wie man erkennt ob eine bestimmte Verbindung existiert und ob/wie man sie weiterverwenden kann.
 
Irgendwie geht das bestimmt, werde mich mal ein bisschen in google umsehen.

Vielleicht stößt ja noch einer unserer PHP Vollprofis (ich denke es ist klar, wer gemeint ist) auf diesen Thread, die uns da sicherlich sehr weiterhelfen können.
 
Ich koennte mir vorstellen, dass man die Verbindung irgendwie uebergeben kann.
Muesste man mal ein wenig rumprobieren, wollte ich die Tage ja schon machen, bin aber bisher nicht dazu gekommen.
 
Zurück