The following is a list of the various URL style socket transports
that PHP has built-in for use with the streams based socket
functions such as fsockopen(), and
stream_socket_client(). These transports do
not apply to the
Sockets Extension.
Internet Domain: TCP, UDP, SSL, and TLS
PHP 4, PHP 5, PHP 6.
ssl:// & tls:// since PHP 4.3.0
sslv2:// & sslv3:// since PHP 5.0.2
Note:
If no transport is specified, tcp:// will be assumed.
- 127.0.0.1
- fe80::1
- www.example.com
- tcp://127.0.0.1
- tcp://fe80::1
- tcp://www.example.com
- udp://www.example.com
- ssl://www.example.com
- sslv2://www.example.com
- sslv3://www.example.com
- tls://www.example.com
Internet Domain sockets expect a port number in addition
to a target address. In the case of fsockopen()
this is specified in a second parameter and therefore does
not impact the formatting of transport URL. With
stream_socket_client() and related functions
as with traditional URLs however, the port number is specified
as a suffix of the transport URL delimited by a colon.
- tcp://127.0.0.1:80
- tcp://[fe80::1]:80
- tcp://www.example.com:80
Note:
IPv6 numeric addresses with port numbers
In the second example above, while the IPv4 and hostname
examples are left untouched apart from the addition of
their colon and portnumber, the IPv6 address is wrapped in
square brackets: [fe80::1]. This is to
distinguish between the colons used in an IPv6 address and
the colon used to delimit the portnumber.
The ssl:// and tls:// transports
(available only when openssl support is compiled into PHP) are extensions
of the tcp:// transport which include SSL encryption.
Since PHP 4.3.0 OpenSSL support must be statically
compiled into PHP, since PHP 5.0.0
it may be compiled as a module or statically.
ssl:// will attempt to negotiate an SSL V2,
or SSL V3 connection depending on the capabilities and preferences
of the remote host. sslv2:// and
sslv3:// will select the SSL V2 or SSL V3
protocol explicitly.