После быстрого чтения, похоже, что открытие сокета имеет дело с другим слоем, чем вы хотите. Вы хотите соединиться через SSH или SFTP, который является прикладным уровнем, используя метод, который устанавливает соединения через TTP / TLS / UDP, который является транспортным уровнем.
Итак, на самом деле вы хотите (я думаю) создать соединение SSL или TLS с помощью функции pfsockopen()
, а затем использовать это соединение для передачи данных по протоколу SSH / SFTP.
По данным сайта PHP:
Если вы скомпилировали в OpenSSL
поддержка, вы можете префикс имени хоста
с помощью ssl: // или tls: // для использования
Соединение клиента SSL или TLS через
TCP / IP для подключения к удаленному хосту.
Таким образом, я думаю, вы задаете имя хоста, начинающееся с ssl://
, а затем используете порт SSH или SFTP в качестве порта (например, порт 22 или порт 989). Что-то вроде:
$persistent_socket = pfsockopen("ssl://myhostsite", 22);
или
$persistent_socket = pfsockopen("ssl://myhostsite", 989);