(PHP 4, PHP 5, PHP 7)
fsockopen — 锟斤拷一锟斤拷锟斤拷锟斤拷锟斤拷锟接伙拷锟斤拷一锟斤拷Unix锟阶斤拷锟斤拷锟斤拷锟斤拷
$hostname
[, int $port
= -1
[, int &$errno
[, string &$errstr
[, float $timeout
= ini_get("default_socket_timeout")
]]]] ) : resource
锟斤拷始锟斤拷一锟斤拷锟阶斤拷锟斤拷锟斤拷锟接碉拷指锟斤拷锟斤拷锟斤拷锟斤拷hostname
锟斤拷锟斤拷
PHP支锟斤拷锟斤拷锟铰碉拷锟阶斤拷锟街达拷锟斤拷锟斤拷锟斤拷锟斤拷锟叫憋拷 锟斤拷支锟街碉拷锟阶斤拷锟街达拷锟斤拷锟斤拷锟斤拷Socket Transports锟斤拷锟叫憋拷锟斤拷也锟斤拷锟斤拷通锟斤拷stream_get_transports()锟斤拷锟斤拷取锟阶斤拷锟街达拷锟斤拷锟斤拷支锟斤拷锟斤拷锟酵★拷
默锟斤拷锟斤拷锟斤拷陆锟斤拷锟斤拷锟斤拷锟侥J斤拷锟斤拷锟斤拷捉锟斤拷锟斤拷锟斤拷印锟斤拷锟饺伙拷锟斤拷锟斤拷通锟斤拷stream_set_blocking()锟斤拷锟斤拷转锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷模式锟斤拷
stream_socket_client()锟斤拷之锟角筹拷锟斤拷锟狡o拷锟斤拷锟斤拷锟结供锟剿革拷锟接丰富锟侥诧拷锟斤拷锟斤拷锟矫o拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷模式锟斤拷锟结供锟斤拷锟斤拷锟侥的碉拷锟斤拷锟矫★拷
hostname
锟斤拷锟斤拷锟阶帮拷锟�OpenSSL锟斤拷锟斤拷么锟斤拷也锟斤拷应锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟街非帮拷锟斤拷锟接凤拷锟斤拷协锟斤拷ssl://锟斤拷锟斤拷锟斤拷tls://锟斤拷锟接讹拷锟斤拷锟斤拷使锟矫伙拷锟斤拷TCP/IP协锟斤拷锟絊SL锟斤拷锟斤拷TLS锟侥客伙拷锟斤拷锟斤拷锟接碉拷远锟斤拷锟斤拷锟斤拷锟斤拷
port
锟剿口号★拷锟斤拷锟斤拷愿貌锟斤拷锟斤拷锟揭伙拷锟�-1锟斤拷锟斤拷锟绞撅拷锟绞癸拷枚丝冢锟斤拷锟斤拷锟�unix://锟斤拷
errno
锟斤拷锟斤拷锟斤拷锟斤拷烁貌锟斤拷锟斤拷锟絟olds the system level error number that occurred in the system-level connect() call锟斤拷
锟斤拷锟�errno
锟侥凤拷锟斤拷值为0锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷姆锟斤拷锟街滴�FALSE
锟斤拷锟斤拷么锟斤拷锟斤拷锟斤拷么锟斤拷锟斤拷锟斤拷锟斤拷捉锟斤拷锟斤拷锟斤拷樱锟�connect()锟斤拷锟斤拷锟斤拷之前锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷失锟杰碉拷原锟斤拷锟斤拷锟侥匡拷锟斤拷锟角筹拷始锟斤拷锟阶斤拷锟街碉拷时锟斤拷锟斤拷锟剿达拷锟斤拷
errstr
锟斤拷锟斤拷锟斤拷息锟斤拷锟斤拷锟街凤拷锟斤拷锟斤拷锟斤拷息锟斤拷锟截★拷
timeout
锟斤拷锟斤拷锟斤拷锟接碉拷时锟睫o拷锟斤拷位为锟诫。
Note:
注锟解:锟斤拷锟斤拷锟揭拷越锟斤拷锟斤拷锟斤拷捉锟斤拷只锟斤拷锟斤拷系亩锟叫达拷锟斤拷锟斤拷锟斤拷貌锟斤拷锟绞憋拷锟斤拷锟斤拷锟斤拷锟斤拷锟绞憋拷蓿锟斤拷锟绞癸拷锟�stream_set_timeout()锟斤拷fsockopen()锟斤拷锟斤拷锟斤拷时锟睫o拷
timeout
锟斤拷锟侥诧拷锟斤拷锟斤拷锟斤拷锟斤拷锟阶斤拷锟斤拷锟斤拷锟接碉拷时锟斤拷锟斤拷效锟斤拷
fsockopen()锟斤拷锟斤拷锟斤拷一锟斤拷锟侥硷拷锟斤拷锟斤拷锟街拷锟斤拷锟皆憋拷锟斤拷锟斤拷锟侥硷拷锟洁函锟斤拷锟斤拷锟矫o拷锟斤拷锟界:fgets()锟斤拷fgetss()锟斤拷fwrite()锟斤拷fclose()锟斤拷锟斤拷feof()锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟绞э拷埽锟斤拷锟斤拷锟斤拷锟�FALSE
锟斤拷
锟斤拷锟斤拷锟斤拷锟斤拷锟�hostname
锟斤拷锟斤拷锟缴凤拷锟绞o拷锟斤拷锟斤拷锟阶筹拷一锟斤拷锟斤拷锟芥级锟斤拷E_WARNING
锟斤拷锟侥达拷锟斤拷锟斤拷示锟斤拷
锟芥本 | 说锟斤拷 |
---|---|
4.3.0 |
锟斤拷win32系统锟斤拷锟斤拷锟斤拷锟剿讹拷时锟斤拷锟斤拷锟矫o拷timeout 锟斤拷锟斤拷锟斤拷锟斤拷支锟街★拷
|
4.3.0 | 锟斤拷TCP/IP协锟斤拷幕锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟絊SL锟斤拷TLS锟斤拷 |
Example #1 fsockopen()锟斤拷锟斤拷锟斤拷
<?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);
}
?>
Example #2 使锟斤拷UDP锟斤拷锟斤拷
锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟秸故撅拷锟斤拷锟矫达拷锟斤拷锟斤拷约锟斤拷幕锟斤拷锟斤拷锟酵拷锟経DP锟阶斤拷锟斤拷锟斤拷锟接o拷锟剿口猴拷13锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟节猴拷时锟戒。
<?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);
}
?>
Note:
锟斤拷为锟斤拷锟斤拷锟侥诧拷同锟斤拷某些锟斤拷锟斤拷锟斤拷锟経nix锟阶斤拷锟斤拷锟斤拷锟接伙拷锟斤拷锟皆讹拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟绞憋拷蓿锟�
timeout
锟斤拷锟斤拷锟杰诧拷锟斤拷锟斤拷效锟斤拷
UDP锟阶斤拷锟斤拷锟斤拷些时锟斤拷锟节硷拷使远锟斤拷锟斤拷锟斤拷未知锟斤拷锟斤拷锟斤拷锟揭诧拷艽蚩锟斤拷锟斤拷也锟斤拷锟斤拷锟斤拷魏未锟斤拷锟街伙拷械锟斤拷锟酵拷锟斤拷锟斤拷捉锟斤拷纸锟斤拷卸锟叫达拷锟绞憋拷锟脚会发锟街达拷锟斤拷之锟斤拷锟皆伙拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷为UDP锟斤拷一锟斤拷"锟斤拷锟斤拷锟斤拷状态"锟斤拷协锟介,锟斤拷么锟斤拷锟斤拷锟轿讹拷诺锟角帮拷锟斤拷锟较低持憋拷锟斤拷锟斤拷锟斤拷捉锟斤拷郑锟斤拷锟斤拷锟斤拷锟揭拷锟斤拷秃徒锟斤拷锟斤拷锟斤拷莸锟绞憋拷锟脚伙拷去锟斤拷锟斤拷为锟斤拷去锟斤拷锟斤拷锟斤拷锟接★拷
Note: 锟斤拷指锟斤拷锟斤拷值锟酵碉拷 IPv6 锟斤拷址锟斤拷锟斤拷锟斤拷 fe80::1锟斤拷时锟斤拷锟斤拷锟矫凤拷锟斤拷锟脚斤拷 IP 围锟斤拷锟斤拷——锟斤拷锟界, tcp://[fe80::1]:80锟斤拷