目前也就几个功能(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小函数,有喜欢的就拿走吧。。。