PHP實現模仿socket請求返回頁面的方法,phpsocket_PHP教程

來源:互聯網
上載者:User

PHP實現模仿socket請求返回頁面的方法,phpsocket


本文執行個體講述了PHP實現模仿socket請求返回頁面的方法。分享給大家供大家參考。具體實現方法如下:

複製代碼 代碼如下:<?php
$url = "www.XXXX.com";  //自己做替換
$parse = parse_url($url);  //對URL進行解析,返回起組成部分。
$host = $parse['host'];
$path = $parse['path'];
$port = 80;
$timeout = 80;
$fp = @fsockopen($host, $port, $errno, $errstr, $timeout);  //開啟socket連結
if (!$fp){
echo $errno."--".$errstr;  //如果錯誤,則返回錯誤碼和錯誤資訊
} 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為可返回位元組數
$return .= $data;
}
}
fclose($fp);
print_r($return);
}

希望本文所述對大家的PHP程式設計有所協助。


php 要對一個頁面進行400多次的迴圈,每次返回時間不定,結果往往是超出訪問時間這應該怎辦

1.用js的setInterval+ajax來請求,PHP裡面加條件判斷是否成功;
2.用PHP遞迴迴圈來做,如:


function test($url)
{
echo $url.'\t\n--------';
$r = @file_get_contents($url);//我這裡返回的是頁數,如果沒有下一頁的時候返回0,停止執行
echo $r;
if($r > 0)
{
$url = 'test.com/1.php?p='.$r;
test($url);
}
else
{
echo 'fail';
}
}

$url = 'test.com/1.php?p=1';
$res = test($url);
?>
 

php使用socket擷取網頁內容

function GETBySocket($URL, $port=80) {
//get host from url
preg_match('/\/\/.*\//sU',$URL,$host_array);
if(!$host_array[0]) {
$URL.='/';
preg_match('/\/\/.*\//sU',$URL,$host_array);
}
$host=substr($host_array[0],2,-1);
//connect
$fp = stream_socket_client("$host:$port", $errcode, $errstr, 1);// or die("get ". $host ." failed");
//
$header = "GET ". $URL. " HTTP/1.1\r\n";
$header .= "Accept: */*\r\n";
$header .= "Accept-Language: zh-cn\r\n";
//$header .= "HTTP_CONNECTION: Keep-Alive\r\n";
$header .= "HTTP_ACCEPT: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5\r\n";
$header .= "HTTP_ACCEPT_CHARSET: gbk,*,utf-8\r\n";
//$header .= "Accept-Encoding: gzip, deflate\r\n";
$header .= "User-Agent: Mozilla/4.0(compatible; MSIE 6.0; Windows NT 5.1;)\r\n";
$header .= "Host: ". $host ."\r\n";
//$header .= "Connection: Keep-Alive\r\n";
//$header .= "Cookie: cnzz02=2; rtime=1; ltime=1148456424859; cnzz_eid=566......餘下全文>>
 

http://www.bkjia.com/PHPjc/906115.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/906115.htmlTechArticlePHP實現模仿socket請求返回頁面的方法,phpsocket 本文執行個體講述了PHP實現模仿socket請求返回頁面的方法。分享給大家供大家參考。具體實現方法...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.