AutoCAD 3DMAX C语言 Pro/E UG JAVA编程 PHP编程 Maya动画 Matlab应用 Android
Photoshop Word Excel flash VB编程 VC编程 Coreldraw SolidWorks A Designer Unity3D
 首页 > PHP编程

php比较通用的公共函数

51自学网 2016-09-17 http://www.wanshiok.com
1.请求接口的处理函数
/** 
 * 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);  
}  
 
2.获取文件扩展名
/** 
 * @获取文件扩展名 
 * @$pic string 图片路径 
 */  
function get_file_ext($pic) {  
    return substr($pic, strrpos($pic, '.') + 1);  
}  
 
3.可逆的加密、解密函数
/** 
 * 字符串加密 
 * @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 <= 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));  
    }  
}  
 
4.字符串转十六进制
/** 
* 字符串转十六进制 
* @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<strlen($s); $i++)  
  $r .= ($hexes [(ord($s{$i}) >> 4)] . $hexes [(ord($s{$i}) & 0xf)]);  
  return $r;  
 
5.十六进制转字符串
/** 
* 十六进制转字符串 
* @param unknown_type $s 
*/  
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;  
}  
 
6.返回经addslashes处理过的字符串或数组
/** 
* 返回经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);  
}  
 
7.返回经stripslashes处理过的字符串或数组
/** 
* 返回经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);  
}  


说明
:本教程来源互联网或网友上传或出版商,仅为学习研究或媒体推广,wanshiok.com不保证资料的完整性。
 
上一篇:php分页类  下一篇:curl方法实例