php中用socket模拟http中post或者get提交数据的示例代码

2015-01-24信息快讯网

以下是对php中用socket模拟http中post或者get提交数据的示例代码进行了介绍,需要的朋友可以过来参考下

废话不多说。直接上代码:
sock_post.php:

<?php
function sock_post($url, $data='') {
  $url = parse_url($url);
  $url['scheme'] || $url['scheme'] = 'http';
  $url['host'] || $url['host'] = $_SERVER['HTTP_HOST'];
  $url['path'][0] != '/' && $url['path'] = '/'.$url['path'];

$query = $data; if(is_array($data)) $query = http_build_query($data);

$fp = @fsockopen($url['host'], $url['port'] ? $url['port'] : 80); if (!$fp) return "Failed to open socket to $url[host]";

fputs($fp, sprintf("POST %s%s%s HTTP/1.0/n", $url['path'], $url['query'] ? "?" : "", $url['query'])); fputs($fp, "Host: $url[host]/n"); fputs($fp, "Content-type: application/x-www-form-urlencoded/n"); fputs($fp, "Content-length: " . strlen($query) . "/n"); fputs($fp, "Connection: close/n/n");

fputs($fp, "$query/n");

$line = fgets($fp,1024);

if (@!eregi("^HTTP/1/.. 200", $line)) return;

$results = ""; $inheader = 1; while(!feof($fp)) { $line = fgets($fp,1024); if ($inheader && ($line == "/n" || $line == "/r/n")) { $inheader = 0; }elseif (!$inheader) { $results .= $line; } } fclose($fp);

return $results; } $re = sock_post('http://localhost/direct_post/get_post.php?id=1',array('wel'=>'hello')); echo $re; ?>


get_post.php:
<?php
echo "post:";
print_r($_POST);
echo 'get:';
print_r($_GET);
?>

php数组查找函数in_array()、array_search()、array_key_exists()使用实例
php中使用getimagesize获取图片、flash等文件的尺寸信息实例
smarty模板中使用get、post、request、cookies、session变量的方法
php中有关字符串的4个函数substr、strrchr、strstr、ereg介绍和使用例子
通过curl模拟post和get方式提交的表单类
PHP函数addslashes和mysql_real_escape_string的区别
php setcookie函数的参数说明及其用法
php sybase_fetch_array使用方法
php过滤所有恶意字符(批量过滤post,get敏感数据)
PHP中CURL的CURLOPT_POSTFIELDS参数使用细节
php发送post请求函数分享
PHP中怎样保持SESSION不过期 原理及方案介绍
浅析php变量作用域的一些问题
深入解析PHP 5.3.x 的strtotime() 时区设定 警告信息修复
注意:php5.4删除了session_unregister函数
浅析PHP Socket技术
解析PHP中的unset究竟会不会释放内存
PHP session_start()问题解疑(详细介绍)
解析:php调用MsSQL存储过程使用内置RETVAL获取过程中的return值
处理(php-cgi.exe - FastCGI 进程超过了配置的请求超时时限)的问题
解决FastCGI 进程超过了配置的活动超时时限的问题
php修改NetBeans默认字体的大小
file_get_contents("php://input", "r")实例介绍
解析php做推送服务端实现ios消息推送
php ios推送(代码)
php获取$_POST同名参数数组的实现介绍
浅析Dos下运行php.exe,出现没有找到php_mbstring.dll 错误的解决方法
解析curl提交GET,POST,Cookie的简单方法
使用PHP接收POST数据,解析json数据
php 模拟POST提交的2种方法详解
PHP的curl实现get,post和cookie(实例介绍)
©2014-2024 dbsqp.com