PHP實(shí)現(xiàn)模仿socket請求返回頁面的方法
更新時(shí)間:2014年11月04日 11:42:15 投稿:shichen2014
這篇文章主要介紹了PHP實(shí)現(xiàn)模仿socket請求返回頁面的方法,是socket通信非常實(shí)用的技巧,需要的朋友可以參考下
本文實(shí)例講述了PHP實(shí)現(xiàn)模仿socket請求返回頁面的方法。分享給大家供大家參考。具體實(shí)現(xiàn)方法如下:
復(fù)制代碼 代碼如下:
<?php
$url = "www.XXXX.com"; //自己做替換
$parse = parse_url($url); //對URL進(jìn)行解析,返回起組成部分。
$host = $parse['host'];
$path = $parse['path'];
$port = 80;
$timeout = 80;
$fp = @fsockopen($host, $port, $errno, $errstr, $timeout); //打開socket鏈接
if (!$fp){
echo $errno."--".$errstr; //如果錯(cuò)誤,則返回錯(cuò)誤代碼和錯(cuò)誤信息
} else {
$out = "POST $path HTTP/1.1\r\n"; //以下是HTTP請求頭信息
$out .= "Host: ".$host."\r\n";
$out .= "Accept: */*\r\n";
$out .= "Connection: Close\r\n";
$out .= "Cookie: $cookie\r\n\r\n";
@fwrite($fp, $out); //把請求信息寫到鏈接中
$status = stream_get_meta_data($fp);
if(!$status['timed_out']) {
while (!feof($fp)) {
if(($header = @fgets($fp)) && ($header == "\r\n" || $header == "\n")) {
break;
}
}
$stop = false;
while(!feof($fp) && !$stop) {
$data = fread($fp,8192); //8192為可返回字節(jié)數(shù)
$return .= $data;
}
}
fclose($fp);
print_r($return);
}
$url = "www.XXXX.com"; //自己做替換
$parse = parse_url($url); //對URL進(jìn)行解析,返回起組成部分。
$host = $parse['host'];
$path = $parse['path'];
$port = 80;
$timeout = 80;
$fp = @fsockopen($host, $port, $errno, $errstr, $timeout); //打開socket鏈接
if (!$fp){
echo $errno."--".$errstr; //如果錯(cuò)誤,則返回錯(cuò)誤代碼和錯(cuò)誤信息
} else {
$out = "POST $path HTTP/1.1\r\n"; //以下是HTTP請求頭信息
$out .= "Host: ".$host."\r\n";
$out .= "Accept: */*\r\n";
$out .= "Connection: Close\r\n";
$out .= "Cookie: $cookie\r\n\r\n";
@fwrite($fp, $out); //把請求信息寫到鏈接中
$status = stream_get_meta_data($fp);
if(!$status['timed_out']) {
while (!feof($fp)) {
if(($header = @fgets($fp)) && ($header == "\r\n" || $header == "\n")) {
break;
}
}
$stop = false;
while(!feof($fp) && !$stop) {
$data = fread($fp,8192); //8192為可返回字節(jié)數(shù)
$return .= $data;
}
}
fclose($fp);
print_r($return);
}
希望本文所述對大家的PHP程序設(shè)計(jì)有所幫助。
您可能感興趣的文章:
- php中Socket創(chuàng)建與監(jiān)聽實(shí)現(xiàn)方法
- php另類上傳圖片的方法(PHP用Socket上傳圖片)
- php中使用Curl、socket、file_get_contents三種方法POST提交數(shù)據(jù)
- php中socket通信機(jī)制實(shí)例詳解
- 使用PHP Socket 編程模擬Http post和get請求
- php中socket的用法詳解
- php socket實(shí)現(xiàn)的聊天室代碼分享
- php與flash as3 socket通信傳送文件實(shí)現(xiàn)代碼
- PHP向socket服務(wù)器收發(fā)數(shù)據(jù)的方法
相關(guān)文章
PHP創(chuàng)建文件及寫入數(shù)據(jù)(覆蓋寫入,追加寫入)的方法詳解
這篇文章主要介紹了PHP創(chuàng)建文件及寫入數(shù)據(jù)(覆蓋寫入,追加寫入)的方法,結(jié)合實(shí)例形式總結(jié)分析了php文件創(chuàng)建、寫入操作相關(guān)函數(shù)使用技巧,需要的朋友可以參考下2019-02-02PHP 配置open_basedir 讓各虛擬站點(diǎn)獨(dú)立運(yùn)行
好幾年前,我在抱怨Apache運(yùn)行PHP的安全性不行,只要一個(gè)站點(diǎn)被人拿下,服務(wù)器上的其他站點(diǎn)就會(huì)跟著遭殃。2009-11-11PHP大小寫問題:函數(shù)名和類名不區(qū)分,變量名區(qū)分
這篇文章主要介紹了PHP大小寫問題,php中變量名是區(qū)分大小寫的,而函數(shù)名與類名是不區(qū)分的2013-06-06