首页 > 网站 > 建站经验 > 正文

php如何post发送数据

2024-04-25 20:35:53
字体:
来源:转载
供稿:网友

function _mh_send($action, $data = null)

{

return $this->_ps_post(SHOP_PATH.'json.php?act=del_user', 500000, $data);

}

/**

* post数据

* @param string $url post的url

* @param int $limit 返回的数据的长度

* @param string $post post数据,字符串形式username='dalarge'&password='123456'

* @param string $cookie 模拟 cookie,字符串形式username='dalarge'&password='123456'

* @param string $ip ip地址

* @param int $timeout 连接超时时间

* @param bool $block 是否为阻塞模式

* @return string 返回字符串

*/

function _ps_post($url, $limit = 0, $post = '', $cookie = '', $ip = '', $timeout = 15, $block = true) {

$return = '';

$matches = parse_url($url);

$host = $matches['host'];

$path = $matches['path'] ? $matches['path'].($matches['query'] ? '?'.$matches['query'] : '') : '/';

$port = !empty($matches['port']) ? $matches['port'] : 80;

$siteurl = $this->_get_url();

if($post) {

$out = "POST $path HTTP/1.1/r/n";

$out .= "Accept: */*/r/n";

$out .= "Referer: ".$siteurl."/r/n";

$out .= "Accept-Language: zh-cn/r/n";

$out .= "Content-Type: application/x-www-form-urlencoded/r/n";

$out .= "User-Agent: $_SERVER[HTTP_USER_AGENT]/r/n";

$out .= "Host: $host/r/n" ;

$out .= 'Content-Length: '.strlen($post)."/r/n" ;

$out .= "Connection: Close/r/n" ;

$out .= "Cache-Control: no-cache/r/n" ;

$out .= "Cookie: $cookie/r/n/r/n" ;

$out .= $post ;

} else {

$out = "GET $path HTTP/1.1/r/n";

$out .= "Accept: */*/r/n";

$out .= "Referer: ".$siteurl."/r/n";

$out .= "Accept-Language: zh-cn/r/n";

$out .= "User-Agent: $_SERVER[HTTP_USER_AGENT]/r/n";

$out .= "Host: $host/r/n";

$out .= "Connection: Close/r/n";

$out .= "Cookie: $cookie/r/n/r/n";

}

$fp = @fsockopen(($ip ? $ip : $host), $port, $errno, $errstr, $timeout);

if(!$fp) return '';

stream_set_blocking($fp, $block);

stream_set_timeout($fp, $timeout);

@fwrite($fp, $out);

$status = stream_get_meta_data($fp);

if($status['timed_out']) return '';

while (!feof($fp)) {

if(($header = @fgets($fp)) && ($header == "/r/n" || $header == "/n")) break;

}

$stop = false;

while(!feof($fp) && !$stop) {

$data = fread($fp, ($limit == 0 || $limit > 8192 ? 8192 : $limit));

$return .= $data;

if($limit) {

$limit -= strlen($data);

$stop = $limit <= 0;

}

}

@fclose($fp);

//部分虚拟主机返回数值有误,暂不确定原因,过滤返回数据格式

$return_arr = explode("/n", $return);

if(isset($return_arr[1])) {

$return = trim($return_arr[1]);

}

unset($return_arr);

return $return;

}

/**

* 获取当前页面完整URL地址

*/

function _get_url() {

$sys_protocal = isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == '443' ? 'https://' : 'http://';

$php_self = $_SERVER['PHP_SELF'] ? $this->_safe_replace($_SERVER['PHP_SELF']) : $this->_safe_replace($_SERVER['SCRIPT_NAME']);

$path_info = isset($_SERVER['PATH_INFO']) ? $this->_safe_replace($_SERVER['PATH_INFO']) : '';

$relate_url = isset($_SERVER['REQUEST_URI']) ? $this->_safe_replace($_SERVER['REQUEST_URI']) : $php_self.(isset($_SERVER['QUERY_STRING']) ? '?'.$this->_safe_replace($_SERVER['QUERY_STRING']) : $path_info);

return $sys_protocal.(isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : '').$relate_url;

}

/**

* 安全过滤函数

*

* @param $string

* @return string

*/

function _safe_replace($string) {

$string = str_replace('%20','',$string);

$string = str_replace('%27','',$string);

$string = str_replace('%2527','',$string);

$string = str_replace('*','',$string);

$string = str_replace('"','&quot;',$string);

$string = str_replace("'",'',$string);

$string = str_replace('"','',$string);

$string = str_replace(';','',$string);

$string = str_replace('<','&lt;',$string);

$string = str_replace('>','&gt;',$string);

$string = str_replace("{",'',$string);

$string = str_replace('}','',$string);

$string = str_replace('//','',$string);

return $string;

}

 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表