Blogger Information
Blog 91
fans 2
comment 4
visits 127840
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
常用函数封装
夏日的烈风的博客
Original
808 people have browsed it

<?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);

}


Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post