fsockopen(主機(jī)名稱,端口號碼,錯誤號的接受變量,錯誤提示的接受變量,超時時間)
主機(jī)名稱:?就是你需要發(fā)送數(shù)據(jù)的目的地;
端口號:?就是這個目的程序會在哪個端口等著你的數(shù)據(jù);
錯誤號接受變量:?這個是如果建立socket不成功的時候返回的錯誤編號;
錯誤提示的變量:?是錯誤的時候返回的錯誤提示信息;
超時時間:?就是post數(shù)據(jù)之后如果對方?jīng)]有回應(yīng)信息,等待的最長時間。
set_time_limit(0);
$fp=fsockopen("www.example.com",80,$errno,$errstr,30);
if?(!$fp)?{
echo"$errstr($errno)\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);
}
?>
$out里面變量含義:給目的地址一個協(xié)議串。
\r\n的含義:fgets會獲取文件描述符$fp的當(dāng)前的128(也可能是別的常數(shù))個字節(jié),如果還沒有到128個字節(jié)遇到換行符了,則只返回?fù)Q行符及換行符之前的內(nèi)容。
fsockopen()將返回一個文件句柄,之后可以被其他文件類函數(shù)調(diào)用(例如:fgets(),fgetss(),fwrite(),fclose()還有feof())。如果調(diào)用失敗,將返回FALSE。
使用fsockopen()函數(shù)比fopen()函數(shù)的優(yōu)點(diǎn):fopen()只會在PHP中已經(jīng)將allow_url_fopen設(shè)置為真時才能使用,而fsockopen()并沒有限制。