php 通过socket 发送数据到其它服务器的功能实例
内容摘要
这篇文章主要为大家详细介绍了php 通过socket 发送数据到其它服务器的功能实例,具有一定的参考价值,可以用来参考一下。
模拟post数据到其它web server,php通过socket post数
模拟post数据到其它web server,php通过socket post数
文章正文
这篇文章主要为大家详细介绍了php 通过socket 发送数据到其它服务器的功能实例,具有一定的参考价值,可以用来参考一下。
模拟post数据到其它web server,php通过socket post数据到其它网页服务器,对此感兴趣的朋友,看看idc笔记做的技术笔记。经测试代码如下:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 | <code class = "php" > /** * 模拟post数据到其它服务器 * * @param * @arrange (www.idcnote.com) **/ function post_request( $url , $data , $referer = '' ) { // Convert the data array into URL Parameters like a=b&foo=bar etc. $data = http_build_query( $data ); // parse the given URL $url = parse_url ( $url ); if ( $url [ 'scheme' ] != 'http' ) { die ( 'Error: Only HTTP request are supported !' ); } // extract host and path: $host = $url [ 'host' ]; $path = $url [ 'path' ]; // open a socket connection on port 80 - timeout: 30 sec $fp = fsockopen ( $host , 80, $errno , $errstr , 30); if ( $fp ){ // send the request headers: fputs ( $fp , "POST $path HTTP/1.1\r\n" ); fputs ( $fp , "Host: $host\r\n" ); if ( $referer != '' ) fputs ( $fp , "Referer: $referer\r\n" ); fputs ( $fp , "Content-type: application/x-www-form-urlencoded\r\n" ); fputs ( $fp , "Content-length: " . strlen ( $data ) . "\r\n" ); fputs ( $fp , "Connection: close\r\n\r\n" ); fputs ( $fp , $data ); $result = '' ; while (! feof ( $fp )) { // receive the results of the request $result .= fgets ( $fp , 128); } } else { return array ( 'status' => 'err' , 'error' => "$errstr ($errno)" ); } // close the socket connection: fclose( $fp ); // split the result header from the content $result = explode ( "\r\n\r\n" , $result , 2); $header = isset( $result [0]) ? $result [0] : '' ; $content = isset( $result [1]) ? $result [1] : '' ; // return as structured array: return array ( 'status' => 'ok' , 'header' => $header , 'content' => $content ); } //使用方法 // Submit those variables to the server $post_data = array ( 'test' => 'foobar' , 'okay' => 'yes' , 'number' => 2 ); // Send a request to example.com $result = post_request( 'http://www.example.com/' , $post_data ); if ( $result [ 'status' ] == 'ok' ){ // Print headers echo $result [ 'header' ]; echo '<hr />' ; // print the result of the whole request: echo $result [ 'content' ]; } else { echo 'A error occured: ' . $result [ 'error' ]; } /*** 来自php教程(www.idcnote.com) ***/ </code> |
注:关于php 通过socket 发送数据到其它服务器的功能实例的内容就先介绍到这里,更多相关文章的可以留意
代码注释