A5下载站:努力做内容最丰富最安全的下载站! 网站地图最新更新下载排行专题软件发布

热门软件

地铁跑酷

冒险迷岛

全民迷宫

连连消大作战

小河狸创客

阿里健康医鹿

支付宝app

番薯小说

MOMO陌陌

虾米音乐app

位置导航:A5下载 > 源码技巧 > 父类数据

php如何post发送数据

时间:2015-05-30 09:58来源:未知作者:sa浏览:190
function _mh_send($action, $data = null)……

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.1rn";

$out .= "Accept: */*rn";

$out .= "Referer: ".$siteurl."rn";

$out .= "Accept-Language: zh-cnrn";

$out .= "Content-Type: application/x-www-form-urlencodedrn";

$out .= "User-Agent: $_SERVER[HTTP_USER_AGENT]rn";

$out .= "Host: $hostrn" ;

$out .= 'Content-Length: '.strlen($post)."rn" ;

$out .= "Connection: Closern" ;

$out .= "Cache-Control: no-cachern" ;

$out .= "Cookie: $cookiernrn" ;

$out .= $post ;

} else {

$out = "GET $path HTTP/1.1rn";

$out .= "Accept: */*rn";

$out .= "Referer: ".$siteurl."rn";

$out .= "Accept-Language: zh-cnrn";

$out .= "User-Agent: $_SERVER[HTTP_USER_AGENT]rn";

$out .= "Host: $hostrn";

$out .= "Connection: Closern";

$out .= "Cookie: $cookiernrn";

}

$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 == "rn" || $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;

}