Функция PHP fsockopen(): всё, что нужно знать
Как PHP-разработчику вам может потребоваться установить сетевое соединение и взаимодействовать с другим сервером по протоколу TCP/IP. В таких случаях используется PHP
Как PHP-разработчику вам может потребоваться установить сетевое соединение и взаимодействовать с другим сервером по протоколу TCP/IP. Функция fsockopen() fsockopen() fsockopen() stream_socket_client() или cURL. В этой статье устаревшая функция рассматривается в справочных целях и для помощи при миграции кода.
Что такое функция fsockopen()?
Функция fsockopen() открывает сетевое соединение TCP/IP с указанным хостом и портом, позволяя отправлять и получать данные через файловые указатели.
Как использовать функцию fsockopen()
Использование функции fsockopen() достаточно простое. Вот её синтаксис:
Синтаксис PHP
fsockopen($hostname, $port, &$errno, &$errstr, $timeout);Функция принимает пять параметров:
$hostname: Имя хоста или IP-адрес сервера.$port: Номер порта для подключения.&$errno: Переменная, в которой хранится номер ошибки (если есть).&$errstr: Переменная, в которой хранится сообщение об ошибке (если есть).$timeoutfsockopen()default_socket_timeoutstream_socket_client()inisetting if omitted.
Примечание: Для защищённых соединений добавьте к имени хоста префикс
ssl://илиtls://(например,tls://example.com).
Вот пример использования функции fsockopen() для установки сетевого соединения с сервером и отправки/получения данных:
Пример использования
<?php
$host = "example.com";
$port = 80;
$timeout = 30;
$fp = fsockopen($host, $port, $errno, $errstr, $timeout);
if (!$fp) {
echo "Error: $errstr ($errno)<br/>";
} else {
$out = "GET / HTTP/1.1\r\n";
$out .= "Host: $host\r\n";
$out .= "Connection: Close\r\n\r\n";
fwrite($fp, $out);
while (!feof($fp)) {
echo fgets($fp, 128);
}
fclose($fp);
}В этом примере мы используем функцию fsockopen() fsockopen() example.com с помощью функции fgets() .
Примечание: Для HTTPS-запросов используйте
tls://в качестве префикса перед переменной$host.
Заключение
Хотя функция fsockopen() fsockopen() stream_socket_client() или cURL для новых проектов. Данный справочный материал полезен при поддержке устаревших кодовых баз.