目前也就几个功能(json判断、单维数组转GET参数、cURL发送GET\POST,并且可以设置代理),以后持续更新吧。。
上Code
<?php //判断是否为json数据 function is_json($json){ if (json_decode($json)) { return true; }else{ return false; } } //获取数组成员数,如果参数非数组则返回false function g_a_m($array){ if (is_array($array)) { return count($array); }else{ return false; } } //单维json或是数组转为data数据 function umsn_a_j_to_data($array_json){ $temp_value = ''; $s = 1 ; $n = count($array_json); if (is_json($array_json)) { $temp_a_arrary = json_decode($array_json,true); foreach ($temp_a_arrary as $key => $value) { if ($s < $n) { $char = '&'; }else{ $char = ''; } $s=$s+1; $temp_value = $temp_value.$key.'='.$value.$char; } unset($s); return $temp_value; }else{ foreach ($array_json as $key => $value) { if ($s < $n) { $char = '&'; }else{ $char = ''; } $s=$s+1; $temp_value = $temp_value.$key.'='.$value.$char; } unset($s); return $temp_value; } } //请求GET function http_get($api_get_url, $api_get_data, $get_time = 0, $get_timeout = 10) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $api_get_url.'?'.$api_get_data); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $get_time); curl_setopt($ch, CURLOPT_TIMEOUT, $get_timeout); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); $result = curl_exec($ch); curl_close($ch); return $result; } //请求POST function http_post($api_post_url, $api_post_data, $head_array, $post_time = 0, $post_timeout = 10){ $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $api_post_url); curl_setopt($ch, CURLOPT_POSTFIELDS, $api_post_data); curl_setopt($ch, CURLOPT_HTTPHEADER, $head_array); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $post_time); curl_setopt($ch, CURLOPT_TIMEOUT, $post_timeout); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); $result = curl_exec($ch); curl_close($ch); return $result; } //请求GET,Proxy,代理地址和端口以及用户名和密码可以自己设置,默认为SOCKS5代理,使用HTTP的可以自己更换 function http_proxy_get($api_get_url, $api_get_data, $get_time = 0, $get_timeout = 10, $proxy_host_port = 'IP:PORT', $proxy_u_p = 'username:password') { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $api_get_url.'?'.$api_get_data); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($ch, CURLOPT_PROXY, $proxy_host_port); curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5); curl_setopt($ch, CURLOPT_PROXYUSERPWD, $proxy_u_p); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $get_time); curl_setopt($ch, CURLOPT_TIMEOUT, $get_timeout); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); $result = curl_exec($ch); curl_close($ch); return $result; } //请求POST,Proxy,代理地址和端口以及用户名和密码可以自己设置,默认为SOCKS5代理,使用HTTP的可以自己更换 function http_proxy_post($api_post_url, $api_post_data, $head_array, $post_time = 0, $post_timeout = 10, $proxy_host_port = 'IP:PORT', $proxy_u_p = 'username:password'){ $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $api_post_url); curl_setopt($ch, CURLOPT_POSTFIELDS, $api_post_data); curl_setopt($ch, CURLOPT_HTTPHEADER, $head_array); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_PROXY, $proxy_host_port); curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5); curl_setopt($ch, CURLOPT_PROXYUSERPWD, $proxy_u_p); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $post_time); curl_setopt($ch, CURLOPT_TIMEOUT, $post_timeout); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); $result = curl_exec($ch); curl_close($ch); return $result; }
如果有错误的地方希望大家能指出来,以便我及时改正!
转载请注明:神奇海域 » 自己写\收集的几个PHP小函数,有喜欢的就拿走吧。。。