1. 程式人生 > >php實現非同步請求

php實現非同步請求

index.php

 1 <?php
 2 //非同步請求
 3 $host = "localhost";
 4 $path = '/index2.php';
 5 $port = 80;
 6 $data = ['email'=>'[email protected]','name'=>'xiaoming'];
 7 $param = http_build_query($data);
 8 $fp = fsockopen($host,$port,$errno,$errstr,30);
 9 
10 if($fp)
11 {
12     //post 請求
13     $header
= "POST $path HTTP/1.0\r\n"; 14 $header .= 'Host:'.$host."\r\n"; 15 $header .= "Content-Type:application/x-www-form-urlencoded\r\n"; 16 $header .="Content-Length:".strlen($param)."\r\n"; 17 $header .= 'Connection:Close'."\r\n\r\n"; 18 $header .= $param; 19 fputs($fp, $header);
20 fclose($fp); 21 //get請求 22 /* 23 $path = $path.'?'.$param; 24 $header = "GET $path HTTP/1.0\r\n"; 25 $header .= 'Host:'.$host."\r\n"; 26 $header .= 'Connection:Close'."\r\n\r\n"; 27 fputs($fp, $header); 28 fclose($fp); 29 */ 30 } 31 else 32 { 33 echo $error.'__'.$errstr
; 34 exit; 35 } 36 echo 'send ok!';

index2.php

1 <?php
2     set_time_limit ( 0 );
3     ignore_user_abort ( true );
4 
5     $i = 0;
6     while ( $i ++ < 3 ) {
7         file_put_contents($i.'.txt',$_REQUEST['email']);
8         sleep ( 3 );
9     }