一个是curl的post请求函数,主要用于各平台api开发,进行请求接口的处理函数,如果你有多个平台,互相之间要传递数据,用这个函数绝对好用:
PHP Code复制内容到剪贴板
-
-
-
-
-
-
function getCurlDate($url, $datas, $key) {
-
$datas[‘time‘] = $_SERVER[‘REQUEST_TIME‘] + 300;
-
$post_data[‘post‘] = urlencode(authcode(serialize($datas), "ENCODE", $key));
-
-
$ch = curl_init();
-
curl_setopt($ch, CURLOPT_URL, $url);
-
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
-
-
curl_setopt($ch, CURLOPT_POST, 1);
-
-
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
-
$output = curl_exec($ch);
-
-
curl_close($ch);
-
return json_decode($output, true);
-
}
php获取文件的扩展名:
C/C++ Code复制内容到剪贴板
-
-
-
-
-
function get_file_ext($pic) {
-
return substr($pic, strrpos($pic, ‘.‘) + 1);
-
}
还有一个是可逆的加密、解密函数(加密相同的字符串都会加密成不同的字符串的,非常好用)
PHP Code复制内容到剪贴板
-
-
-
-
-
-
-
-
function authcode($string, $operation = ‘DECODE‘, $key = ‘‘, $expiry = 0) {
-
$ckey_length = 4;
-
$key = md5($key ? $key : ‘^www.itokit.com$‘);
-
$keya = md5(substr($key, 0, 16));
-
$keyb = md5(substr($key, 16, 16));
-
$keyc = $ckey_length ? ($operation == ‘DECODE‘ ? substr($string, 0, $ckey_length) : substr(md5(microtime()), -$ckey_length)) : ‘‘;
-
-
$cryptkey = $keya . md5($keya . $keyc);
-
$key_length = strlen($cryptkey);
-
-
$string = $operation == ‘DECODE‘ ? base64_decode(substr($string, $ckey_length)) : sprintf(‘%010d‘, $expiry ? $expiry + time() : 0) . substr(md5($string . $keyb), 0, 16) . $string;
-
$string_length = strlen($string);
-
-
$result = ‘‘;
-
$box = range(0, 255);
-
-
$rndkey = array();
-
for ($i = 0; $i <= 255; $i++) {
-
$rndkey[$i] = ord($cryptkey[$i % $key_length]);
-
}
-
-
for ($j = $i = 0; $i < 256; $i++) {
-
$j = ($j + $box[$i] + $rndkey[$i]) % 256;
-
$tmp = $box[$i];
-
$box[$i] = $box[$j];
-
$box[$j] = $tmp;
-
}
-
-
for ($a = $j = $i = 0; $i < $string_length; $i++) {
-
$a = ($a + 1) % 256;
-
$j = ($j + $box[$a]) % 256;
-
$tmp = $box[$a];
-
$box[$a] = $box[$j];
-
$box[$j] = $tmp;
-
$result .= chr(ord($string[$i]) ^ ($box[($box[$a] + $box[$j]) % 256]));
-
}
-
-
if ($operation == ‘DECODE‘) {
-
if ((substr($result, 0, 10) == 0 || substr($result, 0, 10) - time() > 0) && substr($result, 10, 16) == substr(md5(substr($result, 26) . $keyb), 0, 16)) {
-
return substr($result, 26);
-
} else {
-
return ‘‘;
-
}
-
} else {
-
return $keyc . str_replace(‘=‘, ‘‘, base64_encode($result));
-
}
-
}
PHP Code复制内容到剪贴板
-
-
-
-
-
function str2hex($s) {
-
$r = "";
-
$hexes = array ("0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f");
-
for ($i=0; $i<strlen($s); $i++)
-
$r .= ($hexes [(ord($s{$i}) >> 4)] . $hexes [(ord($s{$i}) & 0xf)]);
-
return $r;
-
}
PHP Code复制内容到剪贴板
-
-
-
-
-
function hex2str($s) {
-
$r = "";
-
for ( $i = 0; $i<strlen($s); $i += 2)
-
{
-
$x1 = ord($s{$i});
-
$x1 = ($x1>=48 && $x1<58) ? $x1-48 : $x1-97+10;
-
$x2 = ord($s{$i+1});
-
$x2 = ($x2>=48 && $x2<58) ? $x2-48 : $x2-97+10;
-
$r .= chr((($x1 << 4) & 0xf0) | ($x2 & 0x0f));
-
}
-
return $r;
-
}
PHP Code复制内容到剪贴板
-
-
-
-
-
-
function new_addslashes($string){
-
if(!is_array($string)) return addslashes($string);
-
foreach($string as $key => $val) $string[$key] = new_addslashes($val);
-
return $string;
-
}
-
-
-
function addslashes_deep($string)
-
{
-
return is_array($string) ? array_map(‘addslashes_deep‘, $string) : addslashes($string);
-
}
PHP Code复制内容到剪贴板
-
-
-
-
-
-
function new_stripslashes($string) {
-
if(!is_array($string)) return stripslashes($string);
-
foreach($string as $key => $val) $string[$key] = new_stripslashes($val);
-
return $string;
-
}
-
-
function stripslashes_deep($string)
-
{
-
return is_array($string) ? array_map(‘stripslashes_deep‘, $string) : stripslashes($string);
-
}
PHP Code复制内容到剪贴板
-
-
-
-
-
-
function new_html_special_chars($string) {
-
if(!is_array($string)) return htmlspecialchars($string);
-
foreach($string as $key => $val) $string[$key] = new_html_special_chars($val);
-
return $string;
-
}
PHP Code复制内容到剪贴板
-
-
-
-
-
-
function ip() {
-
if(getenv(‘HTTP_CLIENT_IP‘) && strcasecmp(getenv(‘HTTP_CLIENT_IP‘), ‘unknown‘)) {
-
$ip = getenv(‘HTTP_CLIENT_IP‘);
-
} elseif(getenv(‘HTTP_X_FORWARDED_FOR‘) && strcasecmp(getenv(‘HTTP_X_FORWARDED_FOR‘), ‘unknown‘)) {
-
$ip = getenv(‘HTTP_X_FORWARDED_FOR‘);
-
} elseif(getenv(‘REMOTE_ADDR‘) && strcasecmp(getenv(‘REMOTE_ADDR‘), ‘unknown‘)) {
-
$ip = getenv(‘REMOTE_ADDR‘);
-
} elseif(isset($_SERVER[‘REMOTE_ADDR‘]) && $_SERVER[‘REMOTE_ADDR‘] && strcasecmp($_SERVER[‘REMOTE_ADDR‘], ‘unknown‘)) {
-
$ip = $_SERVER[‘REMOTE_ADDR‘];
-
}
-
return preg_match ( ‘/[\d\.]{7,15}/‘, $ip, $matches ) ? $matches [0] : ‘‘;
-
}
PHP Code复制内容到剪贴板
-
-
-
-
-
-
-
function str_cut($string, $length, $dot = ‘...‘) {
-
$strlen = strlen($string);
-
if($strlen <= $length) return $string;
-
$string = str_replace(array(‘ ‘,‘ ‘, ‘&‘, ‘"‘, ‘‘‘, ‘“‘, ‘”‘, ‘—‘, ‘<‘, ‘>‘, ‘·‘, ‘…‘), array(‘∵‘,‘ ‘, ‘&‘, ‘"‘, "‘", ‘“‘, ‘”‘, ‘—‘, ‘<‘, ‘>‘, ‘·‘, ‘…‘), $string);
-
$strcut = ‘‘;
-
if(strtolower(CHARSET) == ‘utf-8‘) {
-
$length = intval($length-strlen($dot)-$length/3);
-
$n = $tn = $noc = 0;
-
while($n < strlen($string)) {
-
$t = ord($string[$n]);
-
if($t == 9 || $t == 10 || (32 <= $t && $t <= 126)) {
-
$tn = 1; $n++; $noc++;
-
} elseif(194 <= $t && $t <= 223) {
-
$tn = 2; $n += 2; $noc += 2;
-
} elseif(224 <= $t && $t <= 239) {
-
$tn = 3; $n += 3; $noc += 2;
-
} elseif(240 <= $t && $t <= 247) {
-
$tn = 4; $n += 4; $noc += 2;
-
} elseif(248 <= $t && $t <= 251) {
-
$tn = 5; $n += 5; $noc += 2;
-
} elseif($t == 252 || $t == 253) {
-
$tn = 6; $n += 6; $noc += 2;
-
} else {
-
$n++;
-
}
-
if($noc >= $length) {
-
break;
-
}
-
}
-
if($noc > $length) {
-
$n -= $tn;
-
}
-
$strcut = substr($string, 0, $n);
-
$strcut = str_replace(array(‘∵‘, ‘&‘, ‘"‘, "‘", ‘“‘, ‘”‘, ‘—‘, ‘<‘, ‘>‘, ‘·‘, ‘…‘), array(‘ ‘, ‘&‘, ‘"‘, ‘‘‘, ‘“‘, ‘”‘, ‘—‘, ‘<‘, ‘>‘, ‘·‘, ‘…‘), $strcut);
-
} else {
-
$dotlen = strlen($dot);
-
$maxi = $length - $dotlen - 1;
-
$current_str = ‘‘;
-
$search_arr = array(‘&‘,‘ ‘, ‘"‘, "‘", ‘“‘, ‘”‘, ‘—‘, ‘<‘, ‘>‘, ‘·‘, ‘…‘,‘∵‘);
-
$replace_arr = array(‘&‘,‘ ‘, ‘"‘, ‘‘‘, ‘“‘, ‘”‘, ‘—‘, ‘<‘, ‘>‘, ‘·‘, ‘…‘,‘ ‘);
-
$search_flip = array_flip($search_arr);
-
for ($i = 0; $i < $maxi; $i++) {
-
$current_str = ord($string[$i]) > 127 ? $string[$i].$string[++$i] : $string[$i];
-
if (in_array($current_str, $search_arr)) {
-
$key = $search_flip[$current_str];
-
$current_str = str_replace($search_arr[$key], $replace_arr[$key], $current_str);
-
}
-
$strcut .= $current_str;
-
}
-
}
-
return $strcut.$dot;
-
}
PHP Code复制内容到剪贴板
-
-
-
-
-
-
-
-
function random($length, $chars = ‘0123456789‘) {
-
$hash = ‘‘;
-
$max = strlen($chars) - 1;
-
for($i = 0; $i < $length; $i++) {
-
$hash .= $chars[mt_rand(0, $max)];
-
}
-
return $hash;
-
}
PHP Code复制内容到剪贴板
-
-
-
-
-
-
-
function string2array($data) {
-
if($data == ‘‘) return array();
-
eval("\$array = $data;");
-
return $array;
-
}
PHP Code复制内容到剪贴板
-
-
-
-
-
-
-
-
function array2string($data, $isformdata = 1) {
-
if($data == ‘‘) return ‘‘;
-
if($isformdata) $data = new_stripslashes($data);
-
return addslashes(var_export($data, TRUE));
-
}
PHP Code复制内容到剪贴板
-
-
-
-
-
-
-
-
function sizecount($filesize) {
-
if ($filesize >= 1073741824) {
-
$filesize = round($filesize / 1073741824 * 100) / 100 .‘ GB‘;
-
} elseif ($filesize >= 1048576) {
-
$filesize = round($filesize / 1048576 * 100) / 100 .‘ MB‘;
-
} elseif($filesize >= 1024) {
-
$filesize = round($filesize / 1024 * 100) / 100 . ‘ KB‘;
-
} else {
-
$filesize = $filesize.‘ Bytes‘;
-
}
-
return $filesize;
-
}
PHP通用代码
原文:http://blog.csdn.net/tomyjohn/article/details/39900863