博客列表 >常用函数封装

常用函数封装

夏日的烈风的博客
夏日的烈风的博客原创
2018年10月29日 11:04:24905浏览

<?php


// 应用公共文件


function xml_to_array2($xml) {

    $search = '/<(\w+)\s*?(?:[^\/>]*)\s*(?:\/>|>(.*?)<\/\s*?\\1\s*?>)/s';

    $array = array ();

    if(preg_match_all($search, $xml, $matches)){

        foreach ($matches[1] as $i => $key) {

            $value = $matches[2][$i];

            if(preg_match_all($search, $value, $_matches)){

                $array[$key] = xml_to_array($value);

            }else{

                if('ITEM' == strtoupper($key)){

                    $array[] = html_entity_decode($value);

                }else{

                    $array[$key] = html_entity_decode($value);

                }

            }

        }

    }

    return $array;

}


function xml_to_array($xml){

    $reg = "/<(\w+)[^>]*>([\\x00-\\xFF]*)<\\/\\1>/";

    if(preg_match_all($reg, $xml, $matches)){

        $count = count($matches[0]);

        for($i = 0; $i < $count; $i++){

            $subxml= $matches[2][$i];

            $key = $matches[1][$i];

            if(preg_match( $reg, $subxml )){

                $arr[$key] = xml_to_array($subxml);

            }else{

                $arr[$key] = $subxml;

            }

        }

    }

    return $arr;

}


function postUrl($curlPost,$url){

    $curl = curl_init();

    curl_setopt($curl, CURLOPT_URL, $url);

    curl_setopt($curl, CURLOPT_HEADER, false);

    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

    curl_setopt($curl, CURLOPT_NOBODY, true);

    curl_setopt($curl, CURLOPT_POST, true);

    curl_setopt($curl, CURLOPT_POSTFIELDS, $curlPost);

    $return_str = curl_exec($curl);

    curl_close($curl);

    return $return_str;

}


// =================================================================================




/**

 * 匹配出 内容中 上传的图片的 路径

 * @param string $content

 * @return null

 */

function preg_match_img($content="")

{

    // 正则表达式匹配 内容中的图片

    preg_match_all('/src=[\"](\/Public\/Uploads\/.*[\.]((jpg)|(png)|(jpeg)|(gif)))[\"]/isU',$content,$r);

    $arrimg = null;

    if(count($r)>2)

    {

        if(count($r[1])>0)

        {

            $arrimg = $r[1];

        }

    }

    return  $arrimg;

    /* foreach($arrimg as $k=>$v)

     {

         if(file_exists(".".$v)) {

             unlinkFile("." . $v);

         }

     }*/

}


/**

 * 匹配出图片 并删除

 * @param string $content

 */

function preg_match_img_delete($content="")

{

    preg_match_all('/src=[\"](\/Public\/Uploads\/.*[\.]((jpg)|(png)|(jpeg)|(gif)))[\"]/isU',$content,$r);

    $arrimg = null;

    if(count($r)>2)

    {

        if(count($r[1])>0)

        {

            $arrimg = $r[1];

        }

    }

    foreach($arrimg as $k=>$v)

    {

        if(file_exists(".".$v)) {

            unlinkFile("." . $v);

        }

    }

}







/**

 * 采集 http https

 * @param $url

 * @return mixed

 */

function mycurl_collect($url) {

    $curl = curl_init(); // //启动一个CURL会话  ...  创建一个新cURL资源   初始化一个新的会话,返回一个cURL句柄

    curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址


    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // 对认证证书来源的检查,0表示阻止对证书的合法性的检查。---https

    //curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 1);// 从证书中检查SSL加密算法是否存在

    curl_setopt($curl, CURLOPT_HTTPHEADER, array('Expect:')); // --- https


    curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);

    curl_setopt($curl, CURLOPT_POST, 1);

    curl_setopt($curl, CURLOPT_HTTPGET, 1);   // curl_setopt($curl, CURLOPT_HEADER,1);

    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); //false 时 curl_exec 就直接在浏览器中上输出了

    $temp = curl_exec($curl);  // 抓取URL并把它传递给浏览器

    curl_close($curl);

    return $temp;

}


/**

 * 取得IP 所在 地址区域 sina

 * @param string $ip

 * @return mixed

 */

function getIPtoarea_sina($ip = '') {

    $url = "http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip=" . $ip;

    $json = mycurl_collect($url);

    $json = json_decode($json, true);

    return $json;

}


/**

 * 取得IP 所在 地址区域 taobao

 * @param string $ip

 * @return mixed

 */

function getIPtoarea_taobao($ip = "") {

    $url = "http://ip.taobao.com/service/getIpInfo.php?ip=" . $ip;

    $json = mycurl_collect($url);

    $json = json_decode($json, true);

    return $json;

}


/* * 取得外网IP

 * @return string

 */


function getIP_wide_area() {

    $url = "http://1212.ip138.com/ic.asp";

    $r = mycurl_collect($url);

    $r = iconv('gb2312', 'utf-8', $r);

    preg_match_all('/[\[]([\d]{1,3}[.][\d]{1,3}[.][\d]{1,3}[.][\d]{1,3})[\]]/is', $r, $r2);

    if (isset($r2[1][0])) {

        return $r2[1][0];

    }

    return '';

}


/**

 * 返回当前域名

 * @return mixed

 */

function getServerName() {

    //  echo $_SERVER['SERVER_NAME']." -- ". $_SERVER['HTTP_HOST'];

    return $_SERVER['HTTP_HOST'];

}


/**

 * 生成随机数和字母

 * @param $len

 * @param null $chars

 * @return string

 */

function getRandomString($len, $chars = null) {

    if (is_null($chars)) {

        $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";

    }

    mt_srand(10000000 * (double) microtime());

    for ($i = 0, $str = '', $lc = strlen($chars) - 1; $i < $len; $i++) {

        $str .= $chars[mt_rand(0, $lc)];

    }

    return $str;

}


// 验证 QQ

function isQQ($str) {

    if (!preg_match('/^[1-9][0-9]{4,14}$/is', $str)) {

        return false;

    }

    return true;

}


function isEmail($email)

{

    if(!preg_match('/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/',$email))

    {

        return false;

    }

    return true;

}


function isPhone($phone)

{

    if (!preg_match('/^1[3|4|5|8][0-9]\d{4,8}$/', $phone)) {

        return false ;

    }

    return true ;

}

function isTel($tel)

{

    if(!preg_match('/^((([\(]\d{3,4}[\)])|(\d{3,4}))(-)?)?\d{7,14}$/',$tel))

    {

        return false;

    }

    return true;

}




/**

 * @param $arrnormkey   验证的键名数组

 * @param $arrparameter  被验证的 数组

 */

function parameterComplete($arrnormkey , $arrparameter)

{

    $b = true;

    foreach($arrnormkey as $k=>$v )

    {

        if(!array_key_exists($v,$arrparameter))

        {

            $b=false;

        }

        else

        {

            unset($arrparameter[$v]);//

        }

    }

    if(count($arrparameter)>0)

    {   // 存在非法参数

        $b = false ;

    }

    return $b ;

}



/**

 * @param $where  条件数组

 * @param $startTime  开始时间

 * @param $endTime    结束时间

 * @param $field      时间字段

 */

function CreateWhereTime(&$where,$startTime,$endTime,$field)

{

    $startTime = setTimeStart($startTime);

    $endTime = setTimeEnd($endTime);

    if($startTime!="")

    {

        $where[$field] =  array('EGT',$startTime);

    }

    if($endTime!="")

    {

        $where[$field] =  array('ELT',$endTime);

    }

    if($startTime!="" && $endTime!="")

    {

        $where[$field] =  array('between',array($startTime,$endTime));

    }

}


/**

 * 2015-06-27

 * 过滤需要以外的字段

 * @param array $data 原数据,二维数组

 * @param array $allowed 被允许的字段

 * @return array

 */

function LimitFields($data=array(),$allowed=array())

{

    if(!is_array($data) || !is_array($allowed))

    {

        return array();

    }

    $newarray = array();

    foreach($allowed as $k=>$v)

    {

        if(isset($data[$v]))

        {

            $newarray[$v] = trim($data[$v]);

        }

        else

        {

            $newarray[$v]="";

        }

    }

    return $newarray ;

}


/**

 * 2015-07-08

 * 取得访问的 Marking 标识  组成部分(当前模块名 ,当前控制器名 ,当前操作名)

 * @return string

 */

function myGetMarking()

{//AaaBbbCcc

   // return  ucfirst( strtolower( MODULE_NAME)) . ucfirst(strtolower(CONTROLLER_NAME))  . ucfirst(strtolower(ACTION_NAME))  ;

    return  ucfirst( strtolower( request()->module())) . ucfirst(strtolower(request()->controller()))  . ucfirst(strtolower(request()->action()))  ;

}


/**

 * 2015-07-23

 * 取得访问的 Marking 标识  组成部分(当前模块名 ,当前控制器名 ,无当前操作名)

 * @return string

 */

function GetMarking2()

{

    return  ucfirst( strtolower( request()->module())) . ucfirst(strtolower(request()->controller()))     ;

}

/**

 * 2015-07-14

 * 传入 类名 和 方法名 创建 Marking 标识

 * @param $className

 * @param $functionName

 */

function myCreatMarking($className,$functionName='')

{

    return ucfirst(strtolower(request()->module())) . ucfirst(strtolower($className)) . ucfirst(strtolower($functionName));

}


/**

 * 2015-07-18

 * 取得  当前 模块 控制 方法 组成的路由 url

 * @param array $arr

 * @return string

 */

function getUrlmvc()

{

    $str = '/'. request()->module().'/' .  request()->controller().'/'  . request()->action().'/'  ;

    return $str ;

}




/**

 * 2015-07-08 后台 用

 * @param $status  状态码(ok = 200, error = 300, timeout = 301)

 * @param $message 信息

 * @param int $isclose  0 否(false) ,1 是(true)

 * @param string $refreshType   要刷新的类型 tabid , dialogid ,divid  ReFreshType::

 * @param string $refreshID    要刷新的 ID

 * @param string $forwardurl  跳转到某个url。

 * @param string $forwardConfirm  跳转url前的确认提示信息。

 */

function myThrowMessage($status,$message,$isclose=0,$refreshType='',$refreshID='',$forwardurl='',$forwardConfirm='')

{

    $arr =   array("statusCode"=>$status,"message"=>$message,"closeCurrent"=>$isclose);

    if(trim($forwardurl)!='')

    {

        $arr['forward']=$forwardurl;

    }

    if(trim($forwardConfirm)!='')

    {

        $arr['forwardConfirm']=$forwardConfirm;

    }

    if($refreshType!='' && $refreshID!='')

    {

        $arr["$refreshType"]=$refreshID;

    }

    echo json_encode($arr);

    exit();

}




/** 2015-07-18

 * 从多少条开始读取

 * @param int $page 读取第多少页的数据

 * @param int $pageSize 每页大小

 * @return int

 */

function setLimitStart($page=1,$pageSize=0)

{

    if($page<1){ $page =1;}

    if($pageSize==0)

    {

        $pageSize = \Home\Common\ReadConfig::getPageSize();

    }

    return ($page-1)*$pageSize;

}


/**

 * 2015-07-20

 * 生成 【开始时间】  格式不对时返回 空

 * @param $strTime

 * @return int|string

 */

function setTimeStart($strTime)

{

    if( preg_match('/[\d]{4}[-][\d]{2}[-][\d]{2}/ism',$strTime,$t)==true)

    {

        return strtotime($t[0]." 00:00:00");

    }

    else{ return '';}

}


/**

 * 2015-07-20

 * 生成 【结束时间】  格式不对时返回 空

 * @param $strTime

 * @return int|string

 */

function setTimeEnd($strTime)

{

    if( preg_match('/[\d]{4}[-][\d]{2}[-][\d]{2}/ism',$strTime,$t)==true)

    {

        return  strtotime($t[0]." 23:59:59");

    }

    else{ return '';}


}


/**

 *2015-07-22

 * 验证是不是 整数

 * @param $str

 * @return bool

 */

function reg_IsInt($str)

{

    if(preg_match('/^[\d]{1,}$/',$str))

    {

        return true;

    }return false ;

}





/**

 * 打印后退出

 * @param $arr

 */

function pp($arr="")

{

    echo "<pre>";

    print_r($arr);

    echo "</pre>";

    exit();

}


/**

 * 打印不退出

 * @param $arr

 */

function pp2($arr)

{

    echo "<pre>";

    print_r($arr);

    echo "</pre>";


}


/**

 * 判断是不是 手机

 * @return bool

 */

function ismobile() {

    // 如果有HTTP_X_WAP_PROFILE则一定是移动设备

    if (isset ($_SERVER['HTTP_X_WAP_PROFILE']))

        return true;


    //此条摘自TPM智能切换模板引擎,适合TPM开发

    if(isset ($_SERVER['HTTP_CLIENT']) &&'PhoneClient'==$_SERVER['HTTP_CLIENT'])

        return true;

    //如果via信息含有wap则一定是移动设备,部分服务商会屏蔽该信息

    if (isset ($_SERVER['HTTP_VIA']))

        //找不到为flase,否则为true

        return stristr($_SERVER['HTTP_VIA'], 'wap') ? true : false;

    //判断手机发送的***端标志,兼容性有待提高

    if (isset ($_SERVER['HTTP_USER_AGENT'])) {

        $clientkeywords = array(

            'nokia','sony','ericsson','mot','samsung','htc','sgh','lg','sharp','sie-','philips','panasonic','alcatel','lenovo','iphone','ipod','blackberry','meizu','android','netfront','symbian','ucweb','windowsce','palm','operamini','operamobi','openwave','nexusone','cldc','midp','wap','mobile'

        );

        //从HTTP_USER_AGENT中查找手机浏览器的关键字

        if (preg_match("/(" . implode('|', $clientkeywords) . ")/i", strtolower($_SERVER['HTTP_USER_AGENT']))) {

            return true;

        }

    }

    //协议法,因为有可能不准确,放到最后判断

    if (isset ($_SERVER['HTTP_ACCEPT'])) {

        // 如果只支持wml并且不支持html那一定是移动设备

        // 如果支持wml和html但是wml在html之前则是移动设备

        if ((strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml') !== false) && (strpos($_SERVER['HTTP_ACCEPT'], 'text/html') === false || (strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml') < strpos($_SERVER['HTTP_ACCEPT'], 'text/html')))) {

            return true;

        }

    }

    return false;

}


/**

 * 删除文件

 *

 * @param string $aimUrl

 * @return boolean

 */

/*function unlinkFile($aimUrl) {

    if (file_exists($aimUrl)) {

        unlink($aimUrl);

        return true;

    } else {

        return false;

    }

}*/


/**

 * 建立文件夹

 *

 * @param string $aimUrl

 * @return viod

 */

/*function createDir($aimUrl)

{

    $aimUrl = str_replace('', '/', $aimUrl);

    $aimDir = '';

    $arr = explode('/', $aimUrl);

    $result = true;

    foreach ($arr as $str) {

        $aimDir .= $str . '/';

        if (!file_exists($aimDir)) {

            $result = mkdir($aimDir);

        }

    }

    return $result;

}*/



/******************************************************************************/




/**

 * 列表 生成结束

 */

function chtmlend()

{

    ob_clean();//清除之前输出的 内容

    echo '<htmlend>';

}





/**

 * 写入文件

 * @param type $file

 * @param type $content

 */

function write_file($file,$content)

{

    if(!file_exists($file))

    {

        createFile($file);

    }


    $fp = fopen($file, 'w+');

    fwrite($fp, $content );

    fclose($fp);

}


/**

 * 写入缓存 php文件

 * @param type $file

 * @param type $content

 */

function write_php($file,$content)

{

    if(!file_exists(".".$file))

    {

        createFile(".".$file);

    }


    $fp = fopen(".".$file, 'w+');

    fwrite($fp,"<?php \r\n\r\n return " . var_export($content, true) ." ; " );

    fclose($fp);

}

/**

 * 读取缓存的 php

 */

function read_php($file)

{

    return include_once '.'.$file;

}


/******* ------ 以下 文件操作 ------- ******/


/**

 * 读取文件列表

 * @param type $dir 目录

 * @param type $extension  文件扩展名

 * @param type $maxnum 取多读取多少个

 * @return string

 */

function getFile($dir,$extension=".",$maxnum=100)

{

    $fileArray[]=NULL;

    if (false != ($handle = opendir ( $dir ))) {

        $i=0;

        while ( false !== ($file = readdir ( $handle )) ) {

            //去掉"“.”、“..”以及带“.xxx”后缀的文件

            if ($file != "." && $file != ".."&&strpos($file,$extension))

            {

                $fileArray[$i]=$file;

                if($i>$maxnum){

                    break;

                }

                $i++;

            }

        }

        //关闭句柄

        closedir ( $handle );

    }

    return $fileArray;

}




/**

 * 建立文件夹

 *

 * @param string $aimUrl

 * @return viod

 */

function createDir($aimUrl) {

    $aimUrl = str_replace('', '/', $aimUrl);

    $aimDir = '';

    $arr = explode('/', $aimUrl);

    $result = true;

    foreach ($arr as $str) {

        $aimDir .= $str . '/';

        if (!file_exists($aimDir)) {

            $result = mkdir($aimDir);

        }

    }

    return $result;

}


/**

 * 建立文件

 *

 * @param string $aimUrl

 * @param boolean $overWrite 该参数控制是否覆盖原文件

 * @return boolean

 */

function createFile($aimUrl, $overWrite = false) {

    if (file_exists($aimUrl) && $overWrite == false) {

        return false;

    } elseif (file_exists($aimUrl) && $overWrite == true) {

        unlinkFile($aimUrl);

    }

    $aimDir = dirname($aimUrl);

    createDir($aimDir);

    touch($aimUrl);

    return true;

}


/**

 * 移动文件夹

 *

 * @param string $oldDir

 * @param string $aimDir

 * @param boolean $overWrite 该参数控制是否覆盖原文件

 * @return boolean

 */

function moveDir($oldDir, $aimDir, $overWrite = false) {

    $aimDir = str_replace('', '/', $aimDir);

    $aimDir = substr($aimDir, -1) == '/' ? $aimDir : $aimDir . '/';

    $oldDir = str_replace('', '/', $oldDir);

    $oldDir = substr($oldDir, -1) == '/' ? $oldDir : $oldDir . '/';

    if (!is_dir($oldDir)) {

        return false;

    }

    if (!file_exists($aimDir)) {

        createDir($aimDir);

    }

    @ $dirHandle = opendir($oldDir);

    if (!$dirHandle) {

        return false;

    }

    while (false !== ($file = readdir($dirHandle))) {

        if ($file == '.' || $file == '..') {

            continue;

        }

        if (!is_dir($oldDir . $file)) {

            moveFile($oldDir . $file, $aimDir . $file, $overWrite);

        } else {

            moveDir($oldDir . $file, $aimDir . $file, $overWrite);

        }

    }

    closedir($dirHandle);

    return rmdir($oldDir);

}


/**

 * 移动文件

 *

 * @param string $fileUrl

 * @param string $aimUrl

 * @param boolean $overWrite 该参数控制是否覆盖原文件

 * @return boolean

 */

function moveFile($fileUrl, $aimUrl, $overWrite = false) {

    if (!file_exists($fileUrl)) {

        return false;

    }

    if (file_exists($aimUrl) && $overWrite = false) {

        return false;

    } elseif (file_exists($aimUrl) && $overWrite = true) {

        unlinkFile($aimUrl);

    }

    $aimDir = dirname($aimUrl);

    createDir($aimDir);

    rename($fileUrl, $aimUrl);

    return true;

}


/**

 * 删除文件夹

 *

 * @param string $aimDir

 * @return boolean

 */

function unlinkDir($aimDir) {

    $aimDir = str_replace('', '/', $aimDir);

    $aimDir = substr($aimDir, -1) == '/' ? $aimDir : $aimDir . '/';

    if (!is_dir($aimDir)) {

        return false;

    }

    $dirHandle = opendir($aimDir);

    while (false !== ($file = readdir($dirHandle))) {

        if ($file == '.' || $file == '..') {

            continue;

        }

        if (!is_dir($aimDir . $file)) {

            unlinkFile($aimDir . $file);

        } else {

            unlinkDir($aimDir . $file);

        }

    }

    closedir($dirHandle);

    return rmdir($aimDir);

}


/**

 * 删除文件

 *

 * @param string $aimUrl

 * @return boolean

 */

function unlinkFile($aimUrl) {

    if (file_exists($aimUrl)) {

        unlink($aimUrl);

        return true;

    } else {

        return false;

    }

}


/**

 * 复制文件夹

 *

 * @param string $oldDir

 * @param string $aimDir

 * @param boolean $overWrite 该参数控制是否覆盖原文件

 * @return boolean

 */

function copyDir($oldDir, $aimDir, $overWrite = false) {

    $aimDir = str_replace('', '/', $aimDir);

    $aimDir = substr($aimDir, -1) == '/' ? $aimDir : $aimDir . '/';

    $oldDir = str_replace('', '/', $oldDir);

    $oldDir = substr($oldDir, -1) == '/' ? $oldDir : $oldDir . '/';

    if (!is_dir($oldDir)) {

        return false;

    }

    if (!file_exists($aimDir)) {

        createDir($aimDir);

    }

    $dirHandle = opendir($oldDir);

    while (false !== ($file = readdir($dirHandle))) {

        if ($file == '.' || $file == '..') {

            continue;

        }

        if (!is_dir($oldDir . $file)) {

            copyFile($oldDir . $file, $aimDir . $file, $overWrite);

        } else {

            copyDir($oldDir . $file, $aimDir . $file, $overWrite);

        }

    }

    return closedir($dirHandle);

}


/**

 * 复制文件

 *

 * @param string $fileUrl

 * @param string $aimUrl

 * @param boolean $overWrite 该参数控制是否覆盖原文件

 * @return boolean

 */

function copyFile($fileUrl, $aimUrl, $overWrite = false) {

    if (!file_exists($fileUrl)) {

        return false;

    }

    if (file_exists($aimUrl) && $overWrite == false) {

        return false;

    } elseif (file_exists($aimUrl) && $overWrite == true) {

        unlinkFile($aimUrl);

    }

    $aimDir = dirname($aimUrl);

    createDir($aimDir);

    copy($fileUrl, $aimUrl);

    return true;

}

/**

 * 循环创建目录

 * @param type $dir

 * @param type $mode

 * @return boolean

 */

//function mk_dir($dir, $mode = 0755)

//{

//    if (is_dir($dir) || @mkdir($dir,$mode)) return true;

//    if (!mk_dir(dirname($dir),$mode)) return false;

//    return @mkdir($dir,$mode);

//}

// **************************************************************



/**

 * 打印输出数据到文件

 * @param type $data 需要打印的数据

 * @param type $replace 是否要替换打印

 * @param string $pathname 打印输出文件位置

 * @author Anyon Zou <cxphp@qq.com>

 */

function p2f($data, $replace = false, $pathname = NULL) {

    is_null($pathname) && $pathname = RUNTIME_PATH . date('Ymd') . '_print.txt';

    $model = $replace ? FILE_APPEND : FILE_USE_INCLUDE_PATH;

    if (is_array($data)) {

        file_put_contents($pathname, print_r($data, TRUE), $model);

    } else {

        file_put_contents($pathname, $data, $model);

    }

}


/**

 * 处理插件钩子

 * @param string $hook   钩子名称

 * @param mixed $params 传入参数

 * @return void

 * @author Anyon Zou <cxphp@qq.com>

 */

function hook($hook, $params = array()) {

    \Think\Hook::listen($hook, $params);

}


/**

 * 简单对称加密算法之加密

 * @param String $string 需要加密的字串

 * @param String $skey 加密EKY

 * @return String 加密后的字符串

 * @author Anyon Zou <cxphp@qq.com>

 */

function encode($string = '', $skey = 'ThinkCMF') {

    $skey = str_split(base64_encode($skey));

    $strArr = str_split(base64_encode($string));

    $strCount = count($strArr);

    foreach ($skey as $key => $value) {

        $key < $strCount && $strArr[$key].=$value;

    }

    return str_replace('=', 'ThinkCMF', join('', $strArr));

}


/**

 * 简单对称加密算法之解密

 * @param String $string 需要解密的字串

 * @param String $skey 解密KEY

 * @return String 解密后的字符串

 * @author Anyon Zou <cxphp@qq.com>

 */

function decode($string = '', $skey = 'ThinkCMF') {

    $skey = str_split(base64_encode($skey));

    $strArr = str_split(str_replace('ThinkCMF', '=', $string), 2);

    $strCount = count($strArr);

    foreach ($skey as $key => $value) {

        if ($key < $strCount && $strArr[$key][1] === $value) {

            $strArr[$key] = $strArr[$key][0];

        } else {

            break;

        }

    }

    return base64_decode(join('', $strArr));

}


/**********************************************************************************************************/


/**

 * 快速时间格式生成

 * @param type $time 时间载

 * @param type $format 时间格式

 * @return type 格式化后的时间

 */

function toDate($time = null, $format = 'Y-m-d H:i:s') {

    is_null($time) && $time = time();

    return date($format, $time);

}


<?php


// 应用公共文件


function xml_to_array2($xml) {

    $search = '/<(\w+)\s*?(?:[^\/>]*)\s*(?:\/>|>(.*?)<\/\s*?\\1\s*?>)/s';

    $array = array ();

    if(preg_match_all($search, $xml, $matches)){

        foreach ($matches[1] as $i => $key) {

            $value = $matches[2][$i];

            if(preg_match_all($search, $value, $_matches)){

                $array[$key] = xml_to_array($value);

            }else{

                if('ITEM' == strtoupper($key)){

                    $array[] = html_entity_decode($value);

                }else{

                    $array[$key] = html_entity_decode($value);

                }

            }

        }

    }

    return $array;

}


function xml_to_array($xml){

    $reg = "/<(\w+)[^>]*>([\\x00-\\xFF]*)<\\/\\1>/";

    if(preg_match_all($reg, $xml, $matches)){

        $count = count($matches[0]);

        for($i = 0; $i < $count; $i++){

            $subxml= $matches[2][$i];

            $key = $matches[1][$i];

            if(preg_match( $reg, $subxml )){

                $arr[$key] = xml_to_array($subxml);

            }else{

                $arr[$key] = $subxml;

            }

        }

    }

    return $arr;

}


function postUrl($curlPost,$url){

    $curl = curl_init();

    curl_setopt($curl, CURLOPT_URL, $url);

    curl_setopt($curl, CURLOPT_HEADER, false);

    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

    curl_setopt($curl, CURLOPT_NOBODY, true);

    curl_setopt($curl, CURLOPT_POST, true);

    curl_setopt($curl, CURLOPT_POSTFIELDS, $curlPost);

    $return_str = curl_exec($curl);

    curl_close($curl);

    return $return_str;

}


// =================================================================================




/**

 * 匹配出 内容中 上传的图片的 路径

 * @param string $content

 * @return null

 */

function preg_match_img($content="")

{

    // 正则表达式匹配 内容中的图片

    preg_match_all('/src=[\"](\/Public\/Uploads\/.*[\.]((jpg)|(png)|(jpeg)|(gif)))[\"]/isU',$content,$r);

    $arrimg = null;

    if(count($r)>2)

    {

        if(count($r[1])>0)

        {

            $arrimg = $r[1];

        }

    }

    return  $arrimg;

    /* foreach($arrimg as $k=>$v)

     {

         if(file_exists(".".$v)) {

             unlinkFile("." . $v);

         }

     }*/

}


/**

 * 匹配出图片 并删除

 * @param string $content

 */

function preg_match_img_delete($content="")

{

    preg_match_all('/src=[\"](\/Public\/Uploads\/.*[\.]((jpg)|(png)|(jpeg)|(gif)))[\"]/isU',$content,$r);

    $arrimg = null;

    if(count($r)>2)

    {

        if(count($r[1])>0)

        {

            $arrimg = $r[1];

        }

    }

    foreach($arrimg as $k=>$v)

    {

        if(file_exists(".".$v)) {

            unlinkFile("." . $v);

        }

    }

}







/**

 * 采集 http https

 * @param $url

 * @return mixed

 */

function mycurl_collect($url) {

    $curl = curl_init(); // //启动一个CURL会话  ...  创建一个新cURL资源   初始化一个新的会话,返回一个cURL句柄

    curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址


    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // 对认证证书来源的检查,0表示阻止对证书的合法性的检查。---https

    //curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 1);// 从证书中检查SSL加密算法是否存在

    curl_setopt($curl, CURLOPT_HTTPHEADER, array('Expect:')); // --- https


    curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);

    curl_setopt($curl, CURLOPT_POST, 1);

    curl_setopt($curl, CURLOPT_HTTPGET, 1);   // curl_setopt($curl, CURLOPT_HEADER,1);

    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); //false 时 curl_exec 就直接在浏览器中上输出了

    $temp = curl_exec($curl);  // 抓取URL并把它传递给浏览器

    curl_close($curl);

    return $temp;

}


/**

 * 取得IP 所在 地址区域 sina

 * @param string $ip

 * @return mixed

 */

function getIPtoarea_sina($ip = '') {

    $url = "http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip=" . $ip;

    $json = mycurl_collect($url);

    $json = json_decode($json, true);

    return $json;

}


/**

 * 取得IP 所在 地址区域 taobao

 * @param string $ip

 * @return mixed

 */

function getIPtoarea_taobao($ip = "") {

    $url = "http://ip.taobao.com/service/getIpInfo.php?ip=" . $ip;

    $json = mycurl_collect($url);

    $json = json_decode($json, true);

    return $json;

}


/* * 取得外网IP

 * @return string

 */


function getIP_wide_area() {

    $url = "http://1212.ip138.com/ic.asp";

    $r = mycurl_collect($url);

    $r = iconv('gb2312', 'utf-8', $r);

    preg_match_all('/[\[]([\d]{1,3}[.][\d]{1,3}[.][\d]{1,3}[.][\d]{1,3})[\]]/is', $r, $r2);

    if (isset($r2[1][0])) {

        return $r2[1][0];

    }

    return '';

}


/**

 * 返回当前域名

 * @return mixed

 */

function getServerName() {

    //  echo $_SERVER['SERVER_NAME']." -- ". $_SERVER['HTTP_HOST'];

    return $_SERVER['HTTP_HOST'];

}


/**

 * 生成随机数和字母

 * @param $len

 * @param null $chars

 * @return string

 */

function getRandomString($len, $chars = null) {

    if (is_null($chars)) {

        $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";

    }

    mt_srand(10000000 * (double) microtime());

    for ($i = 0, $str = '', $lc = strlen($chars) - 1; $i < $len; $i++) {

        $str .= $chars[mt_rand(0, $lc)];

    }

    return $str;

}


// 验证 QQ

function isQQ($str) {

    if (!preg_match('/^[1-9][0-9]{4,14}$/is', $str)) {

        return false;

    }

    return true;

}


function isEmail($email)

{

    if(!preg_match('/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/',$email))

    {

        return false;

    }

    return true;

}


function isPhone($phone)

{

    if (!preg_match('/^1[3|4|5|8][0-9]\d{4,8}$/', $phone)) {

        return false ;

    }

    return true ;

}

function isTel($tel)

{

    if(!preg_match('/^((([\(]\d{3,4}[\)])|(\d{3,4}))(-)?)?\d{7,14}$/',$tel))

    {

        return false;

    }

    return true;

}




/**

 * @param $arrnormkey   验证的键名数组

 * @param $arrparameter  被验证的 数组

 */

function parameterComplete($arrnormkey , $arrparameter)

{

    $b = true;

    foreach($arrnormkey as $k=>$v )

    {

        if(!array_key_exists($v,$arrparameter))

        {

            $b=false;

        }

        else

        {

            unset($arrparameter[$v]);//

        }

    }

    if(count($arrparameter)>0)

    {   // 存在非法参数

        $b = false ;

    }

    return $b ;

}



/**

 * @param $where  条件数组

 * @param $startTime  开始时间

 * @param $endTime    结束时间

 * @param $field      时间字段

 */

function CreateWhereTime(&$where,$startTime,$endTime,$field)

{

    $startTime = setTimeStart($startTime);

    $endTime = setTimeEnd($endTime);

    if($startTime!="")

    {

        $where[$field] =  array('EGT',$startTime);

    }

    if($endTime!="")

    {

        $where[$field] =  array('ELT',$endTime);

    }

    if($startTime!="" && $endTime!="")

    {

        $where[$field] =  array('between',array($startTime,$endTime));

    }

}


/**

 * 2015-06-27

 * 过滤需要以外的字段

 * @param array $data 原数据,二维数组

 * @param array $allowed 被允许的字段

 * @return array

 */

function LimitFields($data=array(),$allowed=array())

{

    if(!is_array($data) || !is_array($allowed))

    {

        return array();

    }

    $newarray = array();

    foreach($allowed as $k=>$v)

    {

        if(isset($data[$v]))

        {

            $newarray[$v] = trim($data[$v]);

        }

        else

        {

            $newarray[$v]="";

        }

    }

    return $newarray ;

}


/**

 * 2015-07-08

 * 取得访问的 Marking 标识  组成部分(当前模块名 ,当前控制器名 ,当前操作名)

 * @return string

 */

function myGetMarking()

{//AaaBbbCcc

   // return  ucfirst( strtolower( MODULE_NAME)) . ucfirst(strtolower(CONTROLLER_NAME))  . ucfirst(strtolower(ACTION_NAME))  ;

    return  ucfirst( strtolower( request()->module())) . ucfirst(strtolower(request()->controller()))  . ucfirst(strtolower(request()->action()))  ;

}


/**

 * 2015-07-23

 * 取得访问的 Marking 标识  组成部分(当前模块名 ,当前控制器名 ,无当前操作名)

 * @return string

 */

function GetMarking2()

{

    return  ucfirst( strtolower( request()->module())) . ucfirst(strtolower(request()->controller()))     ;

}

/**

 * 2015-07-14

 * 传入 类名 和 方法名 创建 Marking 标识

 * @param $className

 * @param $functionName

 */

function myCreatMarking($className,$functionName='')

{

    return ucfirst(strtolower(request()->module())) . ucfirst(strtolower($className)) . ucfirst(strtolower($functionName));

}


/**

 * 2015-07-18

 * 取得  当前 模块 控制 方法 组成的路由 url

 * @param array $arr

 * @return string

 */

function getUrlmvc()

{

    $str = '/'. request()->module().'/' .  request()->controller().'/'  . request()->action().'/'  ;

    return $str ;

}




/**

 * 2015-07-08 后台 用

 * @param $status  状态码(ok = 200, error = 300, timeout = 301)

 * @param $message 信息

 * @param int $isclose  0 否(false) ,1 是(true)

 * @param string $refreshType   要刷新的类型 tabid , dialogid ,divid  ReFreshType::

 * @param string $refreshID    要刷新的 ID

 * @param string $forwardurl  跳转到某个url。

 * @param string $forwardConfirm  跳转url前的确认提示信息。

 */

function myThrowMessage($status,$message,$isclose=0,$refreshType='',$refreshID='',$forwardurl='',$forwardConfirm='')

{

    $arr =   array("statusCode"=>$status,"message"=>$message,"closeCurrent"=>$isclose);

    if(trim($forwardurl)!='')

    {

        $arr['forward']=$forwardurl;

    }

    if(trim($forwardConfirm)!='')

    {

        $arr['forwardConfirm']=$forwardConfirm;

    }

    if($refreshType!='' && $refreshID!='')

    {

        $arr["$refreshType"]=$refreshID;

    }

    echo json_encode($arr);

    exit();

}




/** 2015-07-18

 * 从多少条开始读取

 * @param int $page 读取第多少页的数据

 * @param int $pageSize 每页大小

 * @return int

 */

function setLimitStart($page=1,$pageSize=0)

{

    if($page<1){ $page =1;}

    if($pageSize==0)

    {

        $pageSize = \Home\Common\ReadConfig::getPageSize();

    }

    return ($page-1)*$pageSize;

}


/**

 * 2015-07-20

 * 生成 【开始时间】  格式不对时返回 空

 * @param $strTime

 * @return int|string

 */

function setTimeStart($strTime)

{

    if( preg_match('/[\d]{4}[-][\d]{2}[-][\d]{2}/ism',$strTime,$t)==true)

    {

        return strtotime($t[0]." 00:00:00");

    }

    else{ return '';}

}


/**

 * 2015-07-20

 * 生成 【结束时间】  格式不对时返回 空

 * @param $strTime

 * @return int|string

 */

function setTimeEnd($strTime)

{

    if( preg_match('/[\d]{4}[-][\d]{2}[-][\d]{2}/ism',$strTime,$t)==true)

    {

        return  strtotime($t[0]." 23:59:59");

    }

    else{ return '';}


}


/**

 *2015-07-22

 * 验证是不是 整数

 * @param $str

 * @return bool

 */

function reg_IsInt($str)

{

    if(preg_match('/^[\d]{1,}$/',$str))

    {

        return true;

    }return false ;

}





/**

 * 打印后退出

 * @param $arr

 */

function pp($arr="")

{

    echo "<pre>";

    print_r($arr);

    echo "</pre>";

    exit();

}


/**

 * 打印不退出

 * @param $arr

 */

function pp2($arr)

{

    echo "<pre>";

    print_r($arr);

    echo "</pre>";


}


/**

 * 判断是不是 手机

 * @return bool

 */

function ismobile() {

    // 如果有HTTP_X_WAP_PROFILE则一定是移动设备

    if (isset ($_SERVER['HTTP_X_WAP_PROFILE']))

        return true;


    //此条摘自TPM智能切换模板引擎,适合TPM开发

    if(isset ($_SERVER['HTTP_CLIENT']) &&'PhoneClient'==$_SERVER['HTTP_CLIENT'])

        return true;

    //如果via信息含有wap则一定是移动设备,部分服务商会屏蔽该信息

    if (isset ($_SERVER['HTTP_VIA']))

        //找不到为flase,否则为true

        return stristr($_SERVER['HTTP_VIA'], 'wap') ? true : false;

    //判断手机发送的***端标志,兼容性有待提高

    if (isset ($_SERVER['HTTP_USER_AGENT'])) {

        $clientkeywords = array(

            'nokia','sony','ericsson','mot','samsung','htc','sgh','lg','sharp','sie-','philips','panasonic','alcatel','lenovo','iphone','ipod','blackberry','meizu','android','netfront','symbian','ucweb','windowsce','palm','operamini','operamobi','openwave','nexusone','cldc','midp','wap','mobile'

        );

        //从HTTP_USER_AGENT中查找手机浏览器的关键字

        if (preg_match("/(" . implode('|', $clientkeywords) . ")/i", strtolower($_SERVER['HTTP_USER_AGENT']))) {

            return true;

        }

    }

    //协议法,因为有可能不准确,放到最后判断

    if (isset ($_SERVER['HTTP_ACCEPT'])) {

        // 如果只支持wml并且不支持html那一定是移动设备

        // 如果支持wml和html但是wml在html之前则是移动设备

        if ((strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml') !== false) && (strpos($_SERVER['HTTP_ACCEPT'], 'text/html') === false || (strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml') < strpos($_SERVER['HTTP_ACCEPT'], 'text/html')))) {

            return true;

        }

    }

    return false;

}


/**

 * 删除文件

 *

 * @param string $aimUrl

 * @return boolean

 */

/*function unlinkFile($aimUrl) {

    if (file_exists($aimUrl)) {

        unlink($aimUrl);

        return true;

    } else {

        return false;

    }

}*/


/**

 * 建立文件夹

 *

 * @param string $aimUrl

 * @return viod

 */

/*function createDir($aimUrl)

{

    $aimUrl = str_replace('', '/', $aimUrl);

    $aimDir = '';

    $arr = explode('/', $aimUrl);

    $result = true;

    foreach ($arr as $str) {

        $aimDir .= $str . '/';

        if (!file_exists($aimDir)) {

            $result = mkdir($aimDir);

        }

    }

    return $result;

}*/



/******************************************************************************/




/**

 * 列表 生成结束

 */

function chtmlend()

{

    ob_clean();//清除之前输出的 内容

    echo '<htmlend>';

}





/**

 * 写入文件

 * @param type $file

 * @param type $content

 */

function write_file($file,$content)

{

    if(!file_exists($file))

    {

        createFile($file);

    }


    $fp = fopen($file, 'w+');

    fwrite($fp, $content );

    fclose($fp);

}


/**

 * 写入缓存 php文件

 * @param type $file

 * @param type $content

 */

function write_php($file,$content)

{

    if(!file_exists(".".$file))

    {

        createFile(".".$file);

    }


    $fp = fopen(".".$file, 'w+');

    fwrite($fp,"<?php \r\n\r\n return " . var_export($content, true) ." ; " );

    fclose($fp);

}

/**

 * 读取缓存的 php

 */

function read_php($file)

{

    return include_once '.'.$file;

}


/******* ------ 以下 文件操作 ------- ******/


/**

 * 读取文件列表

 * @param type $dir 目录

 * @param type $extension  文件扩展名

 * @param type $maxnum 取多读取多少个

 * @return string

 */

function getFile($dir,$extension=".",$maxnum=100)

{

    $fileArray[]=NULL;

    if (false != ($handle = opendir ( $dir ))) {

        $i=0;

        while ( false !== ($file = readdir ( $handle )) ) {

            //去掉"“.”、“..”以及带“.xxx”后缀的文件

            if ($file != "." && $file != ".."&&strpos($file,$extension))

            {

                $fileArray[$i]=$file;

                if($i>$maxnum){

                    break;

                }

                $i++;

            }

        }

        //关闭句柄

        closedir ( $handle );

    }

    return $fileArray;

}




/**

 * 建立文件夹

 *

 * @param string $aimUrl

 * @return viod

 */

function createDir($aimUrl) {

    $aimUrl = str_replace('', '/', $aimUrl);

    $aimDir = '';

    $arr = explode('/', $aimUrl);

    $result = true;

    foreach ($arr as $str) {

        $aimDir .= $str . '/';

        if (!file_exists($aimDir)) {

            $result = mkdir($aimDir);

        }

    }

    return $result;

}


/**

 * 建立文件

 *

 * @param string $aimUrl

 * @param boolean $overWrite 该参数控制是否覆盖原文件

 * @return boolean

 */

function createFile($aimUrl, $overWrite = false) {

    if (file_exists($aimUrl) && $overWrite == false) {

        return false;

    } elseif (file_exists($aimUrl) && $overWrite == true) {

        unlinkFile($aimUrl);

    }

    $aimDir = dirname($aimUrl);

    createDir($aimDir);

    touch($aimUrl);

    return true;

}


/**

 * 移动文件夹

 *

 * @param string $oldDir

 * @param string $aimDir

 * @param boolean $overWrite 该参数控制是否覆盖原文件

 * @return boolean

 */

function moveDir($oldDir, $aimDir, $overWrite = false) {

    $aimDir = str_replace('', '/', $aimDir);

    $aimDir = substr($aimDir, -1) == '/' ? $aimDir : $aimDir . '/';

    $oldDir = str_replace('', '/', $oldDir);

    $oldDir = substr($oldDir, -1) == '/' ? $oldDir : $oldDir . '/';

    if (!is_dir($oldDir)) {

        return false;

    }

    if (!file_exists($aimDir)) {

        createDir($aimDir);

    }

    @ $dirHandle = opendir($oldDir);

    if (!$dirHandle) {

        return false;

    }

    while (false !== ($file = readdir($dirHandle))) {

        if ($file == '.' || $file == '..') {

            continue;

        }

        if (!is_dir($oldDir . $file)) {

            moveFile($oldDir . $file, $aimDir . $file, $overWrite);

        } else {

            moveDir($oldDir . $file, $aimDir . $file, $overWrite);

        }

    }

    closedir($dirHandle);

    return rmdir($oldDir);

}


/**

 * 移动文件

 *

 * @param string $fileUrl

 * @param string $aimUrl

 * @param boolean $overWrite 该参数控制是否覆盖原文件

 * @return boolean

 */

function moveFile($fileUrl, $aimUrl, $overWrite = false) {

    if (!file_exists($fileUrl)) {

        return false;

    }

    if (file_exists($aimUrl) && $overWrite = false) {

        return false;

    } elseif (file_exists($aimUrl) && $overWrite = true) {

        unlinkFile($aimUrl);

    }

    $aimDir = dirname($aimUrl);

    createDir($aimDir);

    rename($fileUrl, $aimUrl);

    return true;

}


/**

 * 删除文件夹

 *

 * @param string $aimDir

 * @return boolean

 */

function unlinkDir($aimDir) {

    $aimDir = str_replace('', '/', $aimDir);

    $aimDir = substr($aimDir, -1) == '/' ? $aimDir : $aimDir . '/';

    if (!is_dir($aimDir)) {

        return false;

    }

    $dirHandle = opendir($aimDir);

    while (false !== ($file = readdir($dirHandle))) {

        if ($file == '.' || $file == '..') {

            continue;

        }

        if (!is_dir($aimDir . $file)) {

            unlinkFile($aimDir . $file);

        } else {

            unlinkDir($aimDir . $file);

        }

    }

    closedir($dirHandle);

    return rmdir($aimDir);

}


/**

 * 删除文件

 *

 * @param string $aimUrl

 * @return boolean

 */

function unlinkFile($aimUrl) {

    if (file_exists($aimUrl)) {

        unlink($aimUrl);

        return true;

    } else {

        return false;

    }

}


/**

 * 复制文件夹

 *

 * @param string $oldDir

 * @param string $aimDir

 * @param boolean $overWrite 该参数控制是否覆盖原文件

 * @return boolean

 */

function copyDir($oldDir, $aimDir, $overWrite = false) {

    $aimDir = str_replace('', '/', $aimDir);

    $aimDir = substr($aimDir, -1) == '/' ? $aimDir : $aimDir . '/';

    $oldDir = str_replace('', '/', $oldDir);

    $oldDir = substr($oldDir, -1) == '/' ? $oldDir : $oldDir . '/';

    if (!is_dir($oldDir)) {

        return false;

    }

    if (!file_exists($aimDir)) {

        createDir($aimDir);

    }

    $dirHandle = opendir($oldDir);

    while (false !== ($file = readdir($dirHandle))) {

        if ($file == '.' || $file == '..') {

            continue;

        }

        if (!is_dir($oldDir . $file)) {

            copyFile($oldDir . $file, $aimDir . $file, $overWrite);

        } else {

            copyDir($oldDir . $file, $aimDir . $file, $overWrite);

        }

    }

    return closedir($dirHandle);

}


/**

 * 复制文件

 *

 * @param string $fileUrl

 * @param string $aimUrl

 * @param boolean $overWrite 该参数控制是否覆盖原文件

 * @return boolean

 */

function copyFile($fileUrl, $aimUrl, $overWrite = false) {

    if (!file_exists($fileUrl)) {

        return false;

    }

    if (file_exists($aimUrl) && $overWrite == false) {

        return false;

    } elseif (file_exists($aimUrl) && $overWrite == true) {

        unlinkFile($aimUrl);

    }

    $aimDir = dirname($aimUrl);

    createDir($aimDir);

    copy($fileUrl, $aimUrl);

    return true;

}

/**

 * 循环创建目录

 * @param type $dir

 * @param type $mode

 * @return boolean

 */

//function mk_dir($dir, $mode = 0755)

//{

//    if (is_dir($dir) || @mkdir($dir,$mode)) return true;

//    if (!mk_dir(dirname($dir),$mode)) return false;

//    return @mkdir($dir,$mode);

//}

// **************************************************************



/**

 * 打印输出数据到文件

 * @param type $data 需要打印的数据

 * @param type $replace 是否要替换打印

 * @param string $pathname 打印输出文件位置

 * @author Anyon Zou <cxphp@qq.com>

 */

function p2f($data, $replace = false, $pathname = NULL) {

    is_null($pathname) && $pathname = RUNTIME_PATH . date('Ymd') . '_print.txt';

    $model = $replace ? FILE_APPEND : FILE_USE_INCLUDE_PATH;

    if (is_array($data)) {

        file_put_contents($pathname, print_r($data, TRUE), $model);

    } else {

        file_put_contents($pathname, $data, $model);

    }

}


/**

 * 处理插件钩子

 * @param string $hook   钩子名称

 * @param mixed $params 传入参数

 * @return void

 * @author Anyon Zou <cxphp@qq.com>

 */

function hook($hook, $params = array()) {

    \Think\Hook::listen($hook, $params);

}


/**

 * 简单对称加密算法之加密

 * @param String $string 需要加密的字串

 * @param String $skey 加密EKY

 * @return String 加密后的字符串

 * @author Anyon Zou <cxphp@qq.com>

 */

function encode($string = '', $skey = 'ThinkCMF') {

    $skey = str_split(base64_encode($skey));

    $strArr = str_split(base64_encode($string));

    $strCount = count($strArr);

    foreach ($skey as $key => $value) {

        $key < $strCount && $strArr[$key].=$value;

    }

    return str_replace('=', 'ThinkCMF', join('', $strArr));

}


/**

 * 简单对称加密算法之解密

 * @param String $string 需要解密的字串

 * @param String $skey 解密KEY

 * @return String 解密后的字符串

 * @author Anyon Zou <cxphp@qq.com>

 */

function decode($string = '', $skey = 'ThinkCMF') {

    $skey = str_split(base64_encode($skey));

    $strArr = str_split(str_replace('ThinkCMF', '=', $string), 2);

    $strCount = count($strArr);

    foreach ($skey as $key => $value) {

        if ($key < $strCount && $strArr[$key][1] === $value) {

            $strArr[$key] = $strArr[$key][0];

        } else {

            break;

        }

    }

    return base64_decode(join('', $strArr));

}


/**********************************************************************************************************/


/**

 * 快速时间格式生成

 * @param type $time 时间载

 * @param type $format 时间格式

 * @return type 格式化后的时间

 */

function toDate($time = null, $format = 'Y-m-d H:i:s') {

    is_null($time) && $time = time();

    return date($format, $time);

}


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议