一个是curl的post请求函数,主要用于各平台api开发,进行请求接口的处理函数,如果你有多个平台,互相之间要传递数据,用这个函数绝对好用:
PHP Code 复制内容到剪贴板
- /**
- * curl访问程序接口
- * @param string
- * @return array
- */
- function getCurlDate($url, $datas, $key) {
- $datas['time'] = $_SERVER['REQUEST_TIME'] + 300;
- $post_data['post'] = urlencode(authcode(serialize($datas), "ENCODE", $key));
- // echo $url;
- $ch = curl_init();
- curl_setopt($ch, CURLOPT_URL, $url);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
- // 我们在POST数据哦!
- curl_setopt($ch, CURLOPT_POST, 1);
- // 把post的变量加上
- curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
- $output = curl_exec($ch);
- // dump(curl_error($ch));
- curl_close($ch);
- return json_decode($output, true);
- }
php获取文件的扩展名:
C/C++ Code 复制内容到剪贴板
- /**
- * @获取文件扩展名
- * @$pic string 图片路径
- */
- function get_file_ext($pic) {
- return substr($pic, strrpos($pic, '.') + 1);
- }
还有一个是可逆的加密、解密函数(加密相同的字符串都会加密成不同的字符串的,非常好用)
PHP Code 复制内容到剪贴板
- /**
- * 字符串加密
- * @param $string 需加密的字符
- * @param $operation 加密或解密
- * @param $key 网站加密key,防止破解
- * @return string
- */
- 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
- $rndkey[$i] = ord($cryptkey[$i % $key_length]);
- }
-
- for ($j = $i = 0; $i
- $j = ($j + $box[$i] + $rndkey[$i]) % 256;
- $tmp = $box[$i];
- $box[$i] = $box[$j];
- $box[$j] = $tmp;
- }
-
- for ($a = $j = $i = 0; $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 复制内容到剪贴板
- /**
- * 字符串转十六进制
- * @param unknown_type $s
- */
- 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
- $r .= ($hexes [(ord($s{$i}) >> 4)] . $hexes [(ord($s{$i}) & 0xf)]);
- return $r;
- }
PHP Code 复制内容到剪贴板
- /**
- * 十六进制转字符串
- * @param unknown_type $s
- */
- function hex2str($s) {
- $r = "";
- for ( $i = 0; $i
- {
- $x1 = ord($s{$i});
- $x1 = ($x1>=48 && $x1
- $x2 = ord($s{$i+1});
- $x2 = ($x2>=48 && $x2
- $r .= chr((($x1
- }
- return $r;
- }
PHP Code 复制内容到剪贴板
- /**
- * 返回经addslashes处理过的字符串或数组
- * @param $string 需要处理的字符串或数组
- * @return mixed
- */
- 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 复制内容到剪贴板
- /**
- * 返回经stripslashes处理过的字符串或数组
- * @param $string 需要处理的字符串或数组
- * @return mixed
- */
- 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 复制内容到剪贴板
- /**
- * 返回经 htmlspecialchars 处理过的字符串或数组
- * @param $string 需要处理的字符串或数组
- * @return mixed
- */
- 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 复制内容到剪贴板
- /**
- * 获取请求ip
- *
- * @return ip地址
- */
- 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 复制内容到剪贴板
- /**
- * 字符截取 支持UTF8/GBK
- * @param $string
- * @param $length
- * @param $dot
- */
- function str_cut($string, $length, $dot = '...') {
- $strlen = strlen($string);
- if($strlen
- $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
- $t = ord($string[$n]);
- if($t == 9 || $t == 10 || (32
- $tn = 1; $n++; $noc++;
- } elseif(194
- $tn = 2; $n += 2; $noc += 2;
- } elseif(224
- $tn = 3; $n += 3; $noc += 2;
- } elseif(240
- $tn = 4; $n += 4; $noc += 2;
- } elseif(248
- $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
- $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 复制内容到剪贴板
- /**
- * 产生随机字符串
- *
- * @param int $length 输出长度
- * @param string $chars 可选的 ,默认为 0123456789
- * @return string 字符串
- */
- function random($length, $chars = '0123456789') {
- $hash = '';
- $max = strlen($chars) - 1;
- for($i = 0; $i
- $hash .= $chars[mt_rand(0, $max)];
- }
- return $hash;
- }
PHP Code 复制内容到剪贴板
- /**
- * 将字符串转换为数组
- *
- * @param string $data 字符串
- * @return array 返回数组格式,如果,data为空,则返回空数组
- */
- function string2array($data) {
- if($data == '') return array();
- eval("\$array = $data;");
- return $array;
- }
PHP Code 复制内容到剪贴板
- /**
- * 将数组转换为字符串
- *
- * @param array $data 数组
- * @param bool $isformdata 如果为0,则不使用new_stripslashes处理,可选参数,默认为1
- * @return string 返回字符串,如果,data为空,则返回空
- */
- function array2string($data, $isformdata = 1) {
- if($data == '') return '';
- if($isformdata) $data = new_stripslashes($data);
- return addslashes(var_export($data, TRUE));
- }
PHP Code 复制内容到剪贴板
- /**
- * 转换字节数为其他单位
- *
- *
- * @param string $filesize 字节大小
- * @return string 返回大小
- */
- 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;
- }
Statement:The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn