<?php
namespace isslib\Util;
use think\Config;
/
-
常用工具类
-
User: xaxiong
-
Date: 2016/12/19
-
Time: 13:47
*/
class Tool{
/
- 简单加密处理函数
- @param $data
- @return string
*/
public static function encodeData(\(data</span><span style="color: #000000;">){
</span><span style="color: #0000ff;">return</span> <span style="color: #008080;">urlencode</span>(json_encode(<span style="color: #800080;">\)data));
}
/
- 简单解密处理函数
- @param $data
- @return mixed
*/
public static function decodeData(\(data</span><span style="color: #000000;">){
</span><span style="color: #0000ff;">return</span> json_decode(<span style="color: #008080;">urldecode</span>(<span style="color: #800080;">\)data),true);
}
public static function getPrefix(\(mprefix</span>=''<span style="color: #000000;">){
</span><span style="color: #0000ff;">return</span> <span style="color: #0000ff;">empty</span>(<span style="color: #800080;">\)mprefix)?Config::get('database.prefix'):Config::get('database.prefix').Config::get('database.mprefix')[$mprefix];
}
/
- 对excel里的日期进行格式转化
- @param $val 数据
- @param $format 格式
- @return string
*/
public static function GetExceDate(\(val</span>,<span style="color: #800080;">\)format){
if(!empty(\(val</span><span style="color: #000000;">)) {
</span><span style="color: #800080;">\)jd = <span style="color: #008080;">GregorianToJD(1, 1, 1970);
\(date</span> = \<span style="color: #008080;">JDToGregorian</span>(<span style="color: #800080;">\)jd + intval(\(val</span>) - 25569<span style="color: #000000;">);
</span><span style="color: #008000;">//</span><span style="color: #008000;"> list(\)month, $day, \(year) = explode('/',\)date);
if (!empty(\(format</span>)) <span style="color: #800080;">\)date = date(\(format</span>, <span style="color: #008080;">strtotime</span>(<span style="color: #800080;">\)date));
return $date;
}else{
return null;
}
}
/
-
格式化数字
-
@param $number 要格式化的数值
-
@param $type 类型 normal,electric
-
@param \(type 单位后缀
</span><span style="color: #008000;">*/</span>
<span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">function</span> numberFormat(<span style="color: #800080;">\)number,\(type</span>='normal',<span style="color: #800080;">\)extUnit='')
{
/
- @var array 数据格式化类型
*/
$FORMAT_TYPE=array(
'normal'=>array(
array(
'base'=>100000000,
'unit'=>'亿'
),
array(
'base'=>10000,
'unit'=>'万'
),
array(
'base'=>1000,
'unit'=>'千'
),
array(
'base'=>1,
'unit'=>''
)
),
'electric'=>array(
array(
'base'=>1000000000000,
'unit'=>'TW'
),
array(
'base'=>1000000000,
'unit'=>'GW'
),
array(
'base'=>1000000,
'unit'=>'MW'
),
array(
'base'=>1000,
'unit'=>'KW'
),
array(
'base'=>1,
'unit'=>'W'
)
)
);
\(FORMAT_TYPE_ITEM</span>=<span style="color: #800080;">\)FORMAT_TYPE[\(type</span><span style="color: #000000;">];
</span><span style="color: #008000;">//</span><span style="color: #008000;">\)keys=array_keys(\(FORMAT_TYPE_ITEM);
//var_dump(\)FORMAT_TYPE_ITEM[\(keys[0]]);exit();</span>
<span style="color: #0000ff;">if</span>(<span style="color: #0000ff;">empty</span>(<span style="color: #800080;">\)number)){
\(arr</span>['value']= 0<span style="color: #000000;">;
</span><span style="color: #800080;">\)arr['unit']='';
\(arr</span>['base']=1<span style="color: #000000;">;
</span><span style="color: #0000ff;">return</span> <span style="color: #800080;">\)arr;
}
return self::getMaxUnit(\(number</span>,<span style="color: #800080;">\)FORMAT_TYPE_ITEM,$extUnit);
}
/
-
获取最大单位数据
-
@param $number 数字
-
@param $AllArr 数据类型配置
-
@param string $extUnit 单位
-
@param array $currArr 当前数据
-
@return array
*/
public static function getMaxUnit(\(number</span>,<span style="color: #800080;">\)AllArr,\(extUnit</span>='',<span style="color: #800080;">\)currArr=array()){
//if(\(index>count(\)desArr)) return \(returnArr;</span>
<span style="color: #0000ff;">if</span>(<span style="color: #0000ff;">empty</span>(<span style="color: #800080;">\)currArr)){
\(currArr</span>=<span style="color: #800080;">\)AllArr[0];
}
\(key</span>=<span style="color: #800080;">\)currArr['base'];
\(value</span>=<span style="color: #800080;">\)currArr['unit'];
\(leaveNum</span>=<span style="color: #800080;">\)number/\(key</span><span style="color: #000000;">;
</span><span style="color: #800080;">\)resdata=array();
//arrayStep::getInstance(\(AllArr)->setCurrent(\)key);
if(\(leaveNum</span> > 0 && <span style="color: #800080;">\)leaveNum < 1){
//\(nextArr=arrayStep::getInstance(\)AllArr)->getNext();
\(nextArr</span>=<span style="color: #008080;">next</span>(<span style="color: #800080;">\)AllArr);//var_dump(\(nextArr);</span>
<span style="color: #800080;">\)data=self::getMaxUnit(\(number</span>,<span style="color: #800080;">\)AllArr,\(extUnit</span>,<span style="color: #800080;">\)nextArr);
if(!empty(\(data</span>))<span style="color: #0000ff;">return</span> <span style="color: #800080;">\)data;
}else{
\(resdata</span>= <span style="color: #0000ff;">array</span><span style="color: #000000;">(
</span>'value'=><span style="color: #008080;">number_format</span>(<span style="color: #008080;">round</span>(<span style="color: #800080;">\)leaveNum)),
'unit'=>\(value</span>.<span style="color: #800080;">\)extUnit,
'base'=>\(key</span><span style="color: #000000;">
);
</span><span style="color: #008000;">//</span><span style="color: #008000;">var_dump(\)resdata);
return $resdata;
exit();
}
}
/
- 无限极分类树的生成
- @param $list 数据
- @param string $pk key名称
- @param string $pid 父级编号
- @param string $child
- @param int $root
- @return array
*/
public static function list_to_tree(\(list</span>, <span style="color: #800080;">\)pk='id',\(pid</span> = 'pid',<span style="color: #800080;">\)child = 'child',\(root</span>=0<span style="color: #000000;">) {
</span><span style="color: #008000;">//</span><span style="color: #008000;"> 创建Tree</span>
<span style="color: #800080;">\)tree = array();
if(is_array(\(list</span><span style="color: #000000;">)) {
</span><span style="color: #008000;">//</span><span style="color: #008000;"> 创建基于主键的数组引用</span>
<span style="color: #800080;">\)refer = array();
foreach (\(list</span> <span style="color: #0000ff;">as</span> <span style="color: #800080;">\)key => \(data</span><span style="color: #000000;">) {
</span><span style="color: #800080;">\)refer[\(data</span>[<span style="color: #800080;">\)pk]] =& \(list</span>[<span style="color: #800080;">\)key];
}
foreach (\(list</span> <span style="color: #0000ff;">as</span> <span style="color: #800080;">\)key => \(data</span><span style="color: #000000;">) {
</span><span style="color: #008000;">//</span><span style="color: #008000;"> 判断是否存在parent</span>
<span style="color: #800080;">\)parentId = \(data</span>[<span style="color: #800080;">\)pid];
if (\(root</span> == <span style="color: #800080;">\)parentId) {
\(tree</span>[] =& <span style="color: #800080;">\)list[\(key</span><span style="color: #000000;">];
}</span><span style="color: #0000ff;">else</span><span style="color: #000000;">{
</span><span style="color: #0000ff;">if</span> (<span style="color: #0000ff;">isset</span>(<span style="color: #800080;">\)refer[\(parentId</span><span style="color: #000000;">])) {
</span><span style="color: #800080;">\)parent =& \(refer</span>[<span style="color: #800080;">\)parentId];
\(parent</span>[<span style="color: #800080;">\)child][] =& \(list</span>[<span style="color: #800080;">\)key];
}
}
}
}
return $tree;
}
/
-
GET调用接口获取返回值
-
@param $url url地址
-
@param array $header 请求头配置
-
@return mixed
*/
public function curlGET(\(url</span>,<span style="color: #800080;">\)header=array()){
\(_SESSION</span>['issTcSession']['get'][<span style="color: #800080;">\)url]['url'] = \(url</span><span style="color: #000000;">;
</span><span style="color: #800080;">\)_SESSION['issTcSession']['get'][\(url</span>]['header'] = <span style="color: #800080;">\)header;
// echo \(url;</span>
<span style="color: #800080;">\)ch = curl_init();
curl_setopt(\(ch</span>, CURLOPT_URL, <span style="color: #800080;">\)url);
curl_setopt(\(ch</span>, CURLOPT_HTTPHEADER, <span style="color: #800080;">\)header);
curl_setopt(\(ch</span>, CURLOPT_RETURNTRANSFER, 1<span style="color: #000000;">);
curl_setopt(</span><span style="color: #800080;">\)ch, CURLOPT_HEADER, 0);
curl_setopt(\(ch</span>, CURLOPT_TIMEOUT,60); <span style="color: #008000;">//</span><span style="color: #008000;">只需要设置一个秒的数量就可以</span>
curl_setopt(<span style="color: #800080;">\)ch, CURLOPT_CONNECTTIMEOUT,0);
\(starttime</span>=<span style="color: #008080;">microtime</span>(<span style="color: #0000ff;">true</span><span style="color: #000000;">);
</span><span style="color: #800080;">\)temp = curl_exec(\(ch</span><span style="color: #000000;">);
</span><span style="color: #800080;">\)endtime=microtime(true);
\(data</span>="---------接口请求总时间:".(<span style="color: #800080;">\)endtime-\(starttime</span>)."-----------------------\n本次接口地址为:<span style="color: #800080;">\)url\n\n\n\n";
\(_SESSION</span>['logdata'.<span style="color: #800080;">\)_GET['a']]=\(data</span><span style="color: #000000;">;
curl_close(</span><span style="color: #800080;">\)ch);
return $temp;
}
/
-
POST调用接口获取返回值
-
@param $url url地址
-
@param string $data 参数
-
@param array $header 请求头
-
@return mixed
*/
public function curlPOST(\(url</span>,<span style="color: #800080;">\)data='',$header=array()){
\(_SESSION</span>['issTcSession']['post'][<span style="color: #800080;">\)url]['url'] = \(url</span><span style="color: #000000;">;
</span><span style="color: #800080;">\)_SESSION['issTcSession']['post'][\(url</span>]['data'] = <span style="color: #800080;">\)data;
\(_SESSION</span>['issTcSession']['post'][<span style="color: #800080;">\)url]['header'] = \(header</span><span style="color: #000000;">;
</span><span style="color: #800080;">\)curl = curl_init(); // 启动一个CURL会话
curl_setopt(\(curl</span>, CURLOPT_URL, <span style="color: #800080;">\)url); // 要访问的地址
curl_setopt(\(curl</span>, CURLOPT_HTTPHEADER, <span style="color: #800080;">\)header);
curl_setopt(\(curl</span>, CURLOPT_SSL_VERIFYPEER, 0); <span style="color: #008000;">//</span><span style="color: #008000;"> 对认证证书来源的检查</span>
curl_setopt(<span style="color: #800080;">\)curl, CURLOPT_SSL_VERIFYHOST, 1); // 从证书中检查SSL加密算法是否存在
curl_setopt(\(curl</span>, CURLOPT_USERAGENT, <span style="color: #800080;">\)_SERVER['HTTP_USER_AGENT']); // 模拟用户使用的浏览器
curl_setopt(\(curl</span>, CURLOPT_FOLLOWLOCATION, 1); <span style="color: #008000;">//</span><span style="color: #008000;"> 使用自动跳转</span>
curl_setopt(<span style="color: #800080;">\)curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer
curl_setopt(\(curl</span>, CURLOPT_POST, 1); <span style="color: #008000;">//</span><span style="color: #008000;"> 发送一个常规的Post请求</span>
curl_setopt(<span style="color: #800080;">\)curl, CURLOPT_POSTFIELDS, \(data</span>); <span style="color: #008000;">//</span><span style="color: #008000;"> Post提交的数据包</span>
curl_setopt(<span style="color: #800080;">\)curl, CURLOPT_TIMEOUT,60); //只需要设置一个秒的数量就可以
curl_setopt(\(curl</span>, CURLOPT_CONNECTTIMEOUT,0<span style="color: #000000;">);
curl_setopt(</span><span style="color: #800080;">\)curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回
\(starttime</span>=<span style="color: #008080;">microtime</span>(<span style="color: #0000ff;">true</span><span style="color: #000000;">);
</span><span style="color: #800080;">\)tmpInfo = curl_exec(\(curl</span>); <span style="color: #008000;">//</span><span style="color: #008000;"> 执行操作
// if (curl_errno(\)curl)) {
// echo 'Errno'.curl_error(\(curl);
// }</span>
<span style="color: #800080;">\)endtime=microtime(true);
\(data</span>="---------接口请求总时间:".(<span style="color: #800080;">\)endtime-\(starttime</span>)."-----------------------\n本次接口地址为:<span style="color: #800080;">\)url\n\n\n\n";
\(_SESSION</span>['logdata'.<span style="color: #800080;">\)_GET['a']]=\(data</span><span style="color: #000000;">;
curl_close(</span><span style="color: #800080;">\)curl); // 关键CURL会话
return $tmpInfo; // 返回数据
}
/
-
json数据返回格式化
-
@param $data 数据
-
@param string $status 状态
-
@param string $errorCode 错误代码
-
@param string $message 消息
-
@param null \(total 数据条数
</span><span style="color: #008000;">*/</span>
<span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span> jsonReturn(<span style="color: #800080;">\)data,\(status</span>='1',<span style="color: #800080;">\)errorCode='1',\(message</span>='',<span style="color: #800080;">\)total=null)
{
if(\(data</span><span style="color: #000000;">)
{
</span><span style="color: #800080;">\)json['status'] = 1;
\(json</span>['errorCode'] = <span style="color: #800080;">\)errorCode;
\(json</span>['errorMsg'] = '请求成功'<span style="color: #000000;">;
</span><span style="color: #0000ff;">if</span>(<span style="color: #800080;">\)total)
{
\(json</span>['total'] = <span style="color: #800080;">\)total;
}
else
{
\(json</span>['total'] = <span style="color: #008080;">count</span>(<span style="color: #800080;">\)data);
}
\(json</span>['data'] = <span style="color: #800080;">\)data;
}
else
{
if(\(status</span> != '1'<span style="color: #000000;">)
{
</span><span style="color: #800080;">\)json['status'] = \(status</span><span style="color: #000000;">;
</span><span style="color: #800080;">\)json['errorCode'] = \(errorCode</span><span style="color: #000000;">;
</span><span style="color: #800080;">\)json['errorMsg'] =empty(\(message</span>)? '请求失败':<span style="color: #800080;">\)message;
}
else
{
\(json</span>['status'] = '0'<span style="color: #000000;">;
</span><span style="color: #800080;">\)json['errorCode'] = '0';
\(json</span>['errorMsg'] =<span style="color: #0000ff;">empty</span>(<span style="color: #800080;">\)message)? '请求失败':\(message</span><span style="color: #000000;">;
}
</span><span style="color: #800080;">\)json['total'] = '0';
\(json</span>['data'] = <span style="color: #0000ff;">array</span><span style="color: #000000;">();
}
</span><span style="color: #008080;">header</span>("Content-type: application/json"<span style="color: #000000;">);
</span><span style="color: #0000ff;">echo</span> json_encode(<span style="color: #800080;">\)json);
}
/
- 保留小数
- @param $number 数字
- @param int $num 几位小数
- @return float|int
*/
public function decimal(\(number</span>,<span style="color: #800080;">\)num=1){
\(number</span> = <span style="color: #008080;">round</span>(<span style="color: #800080;">\)number,\(num</span><span style="color: #000000;">);
</span><span style="color: #800080;">\)number1 = intval(\(number</span><span style="color: #000000;">);
</span><span style="color: #800080;">\)number2 = \(number</span> > <span style="color: #800080;">\)number1 ? \(number</span> : <span style="color: #800080;">\)number1;
return $number2;
}
/
-
数组排序
-
@param $arr 数组
-
@param $keys key名
-
@param string $type 排序类型 asc,desc
-
@param int $is0
-
@param int $isK
-
@return array
*/
function arraySort(\(arr</span>, <span style="color: #800080;">\)keys, \(type</span> = 'asc',<span style="color: #800080;">\)is0=0,\(isK</span>=0<span style="color: #000000;">) {
</span><span style="color: #800080;">\)keysvalue = \(new_array</span> = <span style="color: #0000ff;">array</span><span style="color: #000000;">();
</span><span style="color: #0000ff;">foreach</span> (<span style="color: #800080;">\)arr as \(k</span> => <span style="color: #800080;">\)v){
\(keysvalue</span>[<span style="color: #800080;">\)k] = \(v</span>[<span style="color: #800080;">\)keys];
}
\(type</span> == 'asc' ? <span style="color: #008080;">asort</span>(<span style="color: #800080;">\)keysvalue) : arsort(\(keysvalue</span><span style="color: #000000;">);
</span><span style="color: #008080;">reset</span>(<span style="color: #800080;">\)keysvalue);
foreach (\(keysvalue</span> <span style="color: #0000ff;">as</span> <span style="color: #800080;">\)k => $v) {
</span><span style="color: #0000ff;">if</span>(<span style="color: #800080;">$isK</span> == 1<span style="color: #000000;">)
{
</span><span style="color: #800080;">$new_array</span>[<span style="color: #800080;">$k</span>] = <span style="color: #800080;">$arr</span>[<span style="color: #800080;">$k</span><span style="color: #000000;">];
}
</span><span style="color: #0000ff;">else</span><span style="color: #000000;">
{
</span><span style="color: #800080;">$new_array</span>[] = <span style="color: #800080;">$arr</span>[<span style="color: #800080;">$k</span><span style="color: #000000;">];
}
}
if(\(is0</span> == 1<span style="color: #000000;">)
{
</span><span style="color: #0000ff;">foreach</span>(<span style="color: #800080;">\)new_array as \(vo_is0</span><span style="color: #000000;">)
{
</span><span style="color: #0000ff;">if</span>(<span style="color: #800080;">\)vo_is0[\(keys</span>] > 0<span style="color: #000000;">){
</span><span style="color: #800080;">\)new_array_s[] = \(vo_is0</span><span style="color: #000000;">;
}
}
</span><span style="color: #0000ff;">return</span> <span style="color: #800080;">\)new_array_s;
}
return $new_array;
}
/
- 判断是否 为空 给 后端数据转成null
- @param $data
- @param int $isStr 0表示不转字符串,1:表示传成字符串
- @return mixed
*/
function arrIsNull(\(data</span>,<span style="color: #800080;">\)isStr=0)
{
foreach(\(data</span> <span style="color: #0000ff;">as</span> <span style="color: #800080;">\)k=>&\(vo</span><span style="color: #000000;">)
{
</span><span style="color: #0000ff;">if</span>(<span style="color: #0000ff;">empty</span>(<span style="color: #800080;">\)vo) && (\(k</span> != 'startRow') && (<span style="color: #800080;">\)k != 'endRow') && (\(k</span> != 'education'<span style="color: #000000;">))
{
</span><span style="color: #800080;">\)vo = null;
}else{
if(\(isStr</span><span style="color: #000000;">){
</span><span style="color: #800080;">\)vo .= "";
}
}
}
return $data;
}
/
- 着色
- @param $colorarr
- @param $data
- @return mixed
*/
function color2data(\(colorarr</span>,<span style="color: #800080;">\)data){
\(count</span> = <span style="color: #008080;">count</span>(<span style="color: #800080;">\)colorarr);
\(count_data</span> = <span style="color: #008080;">count</span>(<span style="color: #800080;">\)data);
\(d</span> = <span style="color: #008080;">intval</span>(<span style="color: #800080;">\)count_data/\(count</span><span style="color: #000000;">);
</span><span style="color: #800080;">\)d = \(d</span> <= 1 ? 1 : <span style="color: #800080;">\)d;
\(c</span> = 0<span style="color: #000000;">;
</span><span style="color: #800080;">\)n = 1;
foreach(\(data</span> <span style="color: #0000ff;">as</span> &<span style="color: #800080;">\)vo)
{
\(temp</span>['style'] = 'esriSFSSolid'<span style="color: #000000;">;
</span><span style="color: #800080;">\)temp['color'] = \(colorarr</span>[<span style="color: #800080;">\)c];
\(outline</span>['color'] = <span style="color: #0000ff;">array</span>(106, 212, 238,255<span style="color: #000000;">);
</span><span style="color: #800080;">\)outline['width'] = 1;
\(temp</span>['outline'] = <span style="color: #800080;">\)outline;
\(vo</span>['coverStyle'] =<span style="color: #800080;">\)temp;
if(\(n</span> == <span style="color: #800080;">\)d)
{
if(\(c</span> < <span style="color: #800080;">\)count-1)
{
\(c</span>++<span style="color: #000000;">;
}
</span><span style="color: #800080;">\)n = 1;
}
else
{
\(n</span>++<span style="color: #000000;">;
}
}
</span><span style="color: #0000ff;">return</span> <span style="color: #800080;">\)data;
}
/
- 截取字符串
- @param $str
- @param $start
- @param $lenth
- @return string
*/
public function subStr(\(str</span>, <span style="color: #800080;">\)start, \(lenth</span><span style="color: #000000;">)
{
</span><span style="color: #800080;">\)str1 = mb_substr(\(str</span>,<span style="color: #800080;">\)start,\(lenth</span>,'UTF8'<span style="color: #000000;">);
</span><span style="color: #0000ff;">return</span> <span style="color: #800080;">\)str==\(str1</span> ? <span style="color: #800080;">\)str : $str1.'...';
}
/
-
截取字符串
-
@param $str
-
@return int
*/
public function str2num(\(str</span><span style="color: #000000;">)
{
</span><span style="color: #800080;">\)num1 = (int)\(str</span><span style="color: #000000;">;
</span><span style="color: #0000ff;">if</span>(<span style="color: #800080;">\)num1 == $str)
{
</span><span style="color: #0000ff;">return</span> <span style="color: #800080;">$num1</span><span style="color: #000000;">;
}
else
{
return $str;
}
}
/
- 字符串转数组转字符串
- @param $data
- @return mixed
*/
public function str2arr2str(\(data</span><span style="color: #000000;">){
</span><span style="color: #0000ff;">foreach</span>(<span style="color: #800080;">\)data as &\(vo</span><span style="color: #000000;">){
</span><span style="color: #0000ff;">foreach</span>(<span style="color: #800080;">\)vo as &\(vo1</span><span style="color: #000000;">){
</span><span style="color: #0000ff;">if</span>(<span style="color: #008080;">is_array</span>(<span style="color: #800080;">\)vo1))
{
\(vo1</span> = json_encode(<span style="color: #800080;">\)vo1);
// \(vo1 = implode(',',\)vo1);
}
}
}
return $data;
}
function letter(\(value</span><span style="color: #000000;">)
{
</span><span style="color: #800080;">\)letter = '';
do {
\(letter</span> = <span style="color: #008080;">chr</span>(65 + (<span style="color: #800080;">\)value % 26)) . \(letter</span><span style="color: #000000;">;
</span><span style="color: #800080;">\)temp = intval(\(value</span> / 26<span style="color: #000000;">);
</span><span style="color: #0000ff;">if</span> (<span style="color: #800080;">\)temp > 0) {
\(value</span> = <span style="color: #800080;">\)value - 26;
}
\(value</span> = <span style="color: #008080;">intval</span>(<span style="color: #800080;">\)value / 26);
} while (\(temp</span> != 0<span style="color: #000000;">);
</span><span style="color: #0000ff;">return</span> <span style="color: #800080;">\)letter;
}
/
-
调试函数
-
@param unknown $str 要叠加字符的变量名
-
@param unknown $addstr 要添加的字符
-
@param string $ifdel 是否将之前的变量清空
-
@return string
*/
public static function halt(\(logFile</span>,<span style="color: #800080;">\)str,\(ifdel</span>=<span style="color: #0000ff;">false</span><span style="color: #000000;">)
{
</span><span style="color: #008080;">header</span>("Content-type: text/html; charset=utf-8"<span style="color: #000000;">);
</span><span style="color: #800080;">\)logname = C('SOURCE_DATA')['logs_dir'] . \(logFile</span> . '-' . <span style="color: #008080;">date</span>("Ymd") . '.html'<span style="color: #000000;">;
</span><span style="color: #800080;">\)tmpstr = date("Y-m-d h:i:sa") . ' ';
if (\(ifdel</span><span style="color: #000000;">) {
</span><span style="color: #008000;">//</span><span style="color: #008000;">清除日志文件内容</span>
@<span style="color: #008080;">file_put_contents</span>(<span style="color: #800080;">\)logname, "");
}
if (!empty(\(str</span><span style="color: #000000;">)) {
</span><span style="color: #800080;">\)tmpstr .= '--' . \(str</span><span style="color: #000000;">;
}
</span><span style="color: #0000ff;">try</span><span style="color: #000000;"> {
</span><span style="color: #008000;">//</span><span style="color: #008000;">将日导写入日导文件</span>
self::writeFile(<span style="color: #800080;">\)logname, \(tmpstr</span> . "\r\n", 'a+'<span style="color: #000000;">);
} </span><span style="color: #0000ff;">catch</span> (<span style="color: #0000ff;">Exception</span> <span style="color: #800080;">\)e) {
echo '写入日志出现错误!,错误内容为:' . \(e</span>-><span style="color: #000000;">getMessage();
</span><span style="color: #008000;">//</span><span style="color: #008000;">\)this->writeFile(\(logname,\)str.'Error:'.$e);
}
}
/
- 写文件
- @param string $file 文件路径
- @param string $str 写入内容
- @param char \(mode 写入模式
</span><span style="color: #008000;">*/</span>
<span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">function</span> writeFile(<span style="color: #800080;">\)file,\(str</span>,<span style="color: #800080;">\)mode='w')
{
\(oldmask</span> = @<span style="color: #008080;">umask</span>(0<span style="color: #000000;">);
</span><span style="color: #800080;">\)fp = @fopen(\(file</span>,<span style="color: #800080;">\)mode);
@flock(\(fp</span>, 3<span style="color: #000000;">);
</span><span style="color: #0000ff;">if</span>(!<span style="color: #800080;">\)fp)
{
Return false;
}
else
{
@
请发表评论