Du bist hier: Tips » Scripte » PHP
PHP
Referenzliste

fsockopen

Netzwerk-Funktionen

    Befehl:
resource fsockopen ( string $hostname [, int $port = -1 [, int &$errno [, string &$errstr [, float $timeout = ini_get("default_socket_timeout") ]]]] )


    Parameter-Liste:
NameBeschreibung
hostnameWenn Sie OpenSSL-Support mit einkompiliert haben, können Sie dem Parameter hostname entweder ein ssl:// oder ein tls:// voranstellen, um eine SSL- oder TLS-Verbindung aufzubauen, die via TCP/IP mit dem entfernten Server verbunden wird.
portDie Portnummer.
errnoSofern unterstützt, enthält der Parameter die Fehlernummer des Systemlevels, die beim Aufruf der connect()-Funktion auftrat.

Wenn der Rückgabewert von errno 0 ist und die Funktion FALSE zurückgibt, ist dies ein Zeichen, dass der Fehler vor dem connect()-Aufruf auftrat. Dies ist meist der Fall, wenn es ein Problem beim Initialisieren des Sockets gibt.
errstrDie Fehlermeldung als String.
timeoutDer Connection-Timeout in Sekunden.
Hinweis:
Wenn Sie einen Timeout für das Lesen oder Schreiben von Daten über den Socket setzen wollen, verwenden Sie stream_set_timeout(), da der timeout-Parameter von fsockopen() nur für das reine Konnektieren des Sockets gedacht ist.

    Rückgabewerte:
Die Funktion fsockopen() gibt einen Zeiger auf eine Datei zurück, der zusammen mit den anderen Dateifunktionen (wie fgets(), fgetss(), fwrite(), fclose() und feof()) verwendet werden kann. Wenn der Aufruf fehlschlägt, wird FALSE zurückgegeben.

    Beschreibung:
Initialisiert eine Socket-Verbindung zu der in hostname angegebenen Ressource.

PHP unterstützt Ziele im Internet und Unixdomänen, wie sie unter Liste der unterstützten Socket-Transporter beschrieben sind. Eine Liste unterstützter Transportarten können Sie auch mittels stream_get_transports() ermitteln.

Der Socket wird standardmässig im Blocking Mode geöffnet. Sie können auf den Non-Blocking-Modus wechseln, indem Sie die Funktion stream_set_blocking() nutzen.


    Aktiv in Version:
(PHP 4, PHP 5, PHP 7)

    Hinweis:
Hinweis:

Abhängig von der Systemumgebung kann es vorkommen, dass die Unix-Domäne oder der optionale Connection-Timeout nicht verfügbar sind.

Warnung:
UDP-Sockets werden manchmal ohne die Rückgabe eines Fehlermeldung geöffnet, obwohl der entfernte Host nicht erreichbar ist. Der Fehler wird nur sichtbar, wenn Sie Daten vom Socket lesen oder zum Socket schreiben wollen. Der Grund dafür ist, dass UDP ein "verbindungsloses" Protokoll ist, das bedeutet, dass das Betriebssystem nicht versucht, eine Verbindung zum Socket herzustellen, solange es nicht wirklich Daten senden oder empfangen muss.


Wenn Sie eine numerische IPv6-Adresse angeben, z.B. fe80::1, müssen Sie die IP in eckige Klammern schreiben, z.B. tcp://[fe80::1]:80.

    Fehler:
Wirft E_WARNING, wenn hostname keine gültige Domain ist.

    Siehe auch:
Öffnet eine persistente Verbindung zum Internet oder zu einem Unix-Domainsocket
 
Satz Sperr / nicht-blockierenden Modus auf einen Stream
 
Timeout-Zeit auf einem Stream
 
•  fgets()
Liest eine Zeile von der Position des Dateizeigers
 
Liest eine Zeile von der Position des Dateizeigers und entfernt HTML Tags.
 
Schreibt Binärdaten in eine Datei
 
Schliesst einen offenen Dateizeiger
 
•  feof()
Prüft, ob ein Dateizeiger am Ende der Datei steht
 

fsockopen() - Beispiel:


Eingabe:
<?PHP
$fp = fsockopen("www.example.com", 80, $errno, $errstr, 30);
if (!$fp) {
    echo "$errstr ($errno)<br />\n";
} else {
    $out = "GET / HTTP/1.1\r\n";
    $out .= "Host: www.example.com\r\n";
    $out .= "Connection: Close\r\n\r\n";
    fwrite($fp, $out);
    while (!feof($fp)) {
        echo fgets($fp, 128);
    }
    fclose($fp);
?>


Beschreibung:
Version Beschreibung
4.3.0 Der Parameter timeout wird nun auch unter win32-Systemen unterstützt.
4.3.0 SSL und TLS over TCP/IP-Support wurde hinzugefügt.
4.0.0 UDP-Support wurde hinzugefügt.
fsockopen() - Beispiel 2:


Eingabe:
<?PHP
$fp = fsockopen("udp://127.0.0.1", 13, $errno, $errstr);
if (!$fp) {
    echo "ERROR: $errno - $errstr<br />\n";
} else {
    fwrite($fp, "\n");
    echo fread($fp, 26);
    fclose($fp);
}
?>


Beschreibung:
Version Beschreibung
4.3.0 Der Parameter timeout wird nun auch unter win32-Systemen unterstützt.
4.3.0 SSL und TLS over TCP/IP-Support wurde hinzugefügt.
4.0.0 UDP-Support wurde hinzugefügt.
Netzwerk-Funktionen