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.
PHP 3, PHP 4, PHP 5.
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
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.
Table O-1.
Context options for ssl:// and tls://
transports (since PHP 4.3.2)
Name | Usage | Default |
---|
verify_peer |
TRUE or FALSE.
Require verification of SSL certificate used.
| FALSE |
allow_self_signed |
TRUE or FALSE.
Allow self-signed certificates.
| FALSE |
cafile |
Location of Certificate Authority file on local filesystem
which should be used with the verify_peer
context option to authenticate the identity of the remote peer.
| |
capath |
If cafile is not specified or if the certificate
is not found there, the directory pointed to by capath
is searched for a suitable certificate. capath
must be a correctly hashed certificate directory.
| |
local_cert |
Path to local certificate file on filesystem. It must be a PEM
encoded file which contains your certificate and private key.
It can optionally contain the certificate chain of issuers.
| |
passphrase |
Passphrase with which your local_cert file
was encoded.
| |
CN_match |
Common Name we are expecting. PHP will perform limited wildcard
matching. If the Common Name does not match this, the connection
attempt will fail.
| |
Note:
Because ssl:// is the underlying transport for the
https:// and
ftps:// wrappers,
any context options which apply to ssl:// also apply to
https:// and ftps://.