分享学习心得,记录学习笔记
文章:38   访问:110357
今天是:
2019年10月19日 星期六
  >   文章列表   >   文章详情

1.Thinkphp5的知识后续补充

[ 2018.08.30 ]

1. string serialize ( $value )  

serialize可以将任意value转成String存储

之后在需要还原时用:unserialize($value)

                                                    

[ 2018.08.31 ]

从数据库按距离排序,通过坐标查距离 

 MySql 5.6 自带函数 st_distance

SELECT  (st_distance (point (longitude, latitude),point(113.858202,22.583819) ) / 0.0111) AS distance  FROM  wlsq_base.lt s  HAVING distance<10 ORDER BY distance 

解决ThinkPHP首页需要加index.php的问题

修改Nginx的站点配置,加入以下代码

    #下面if中代码,解决访问接口需要加index.php的问题
    if (!-e $request_filename) {
        rewrite ^(.*)$ /index.php?s=$1 last; break;
    }


程序后台执行,且给浏览器响应结束。

echo "ok"; // 非阻塞函数
fastcgi_finish_request();
ignore_user_abort(); // 后台运行
set_time_limit(0); // 取消脚本运行时间的超时上限
while(true){
sleep(1); //
...
}


json_encode()不转义中文字符

// json_encode()不转义中文字符
json_encode("中文文字",JSON_UNESCAPED_UNICODE);


ThinkPHP 对数据库字段增减

$User->where('id=5')->setInc('score',3); // 用户的积分加3
$User->where('id=5')->setInc('score'); // 用户的积分加1
$User->where('id=5')->setDec('score',5); // 用户的积分减5
$User->where('id=5')->setDec('score'); // 用户的积分减1


把已存在的变量中的指定几个合并成一个数组

compact('userName', 'password', "code")


路由问题

路由:

'news$'   =>  'index/news/index',
'news/detail/:id' => 'index/news/detail',


网页

<a href="{:url('index/news/detail?id='.$vo['id'])}">{$vo.title}</a>

路由控制器过深:

'user'   =>  'index/user.index/index',

使用‘.’链接二级模块名和控制器名


设备识别

@Mr.风的影子

https://www.cnblogs.com/sweet521/p/5684407.html  

在基类中定义一个检查方法

/**
* 判断是否为移动设备
*/
private 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那一定是移动设备
// 如果支持wmlhtml但是wmlhtml之前则是移动设备
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;
}

在基类构造函数中调用检查,并处理(可优化为调转到对应目录)

//移动设备访问重定向到mobile
if($this->ismobile()){
if (empty(explode('/', $this->request->url())[1]) || 'mobile' != explode('/', $this->request->url())[1]){
header("Location: /mobile");
exit;
}
}else{
if ('mobile' == explode('/', $this->request->url())[1]){
header("Location: /");
exit;
}
}


高效数组去重:array_flip() 

该函数功能为:交换数组中的键和值

比去重函数array_unique效率更高,占用资源低

$arr = ['a','b','c','d','e','f','a','b','c','g','d','c','e','a','s','c','v','d','f','g','b','a','s','a','r'];
$arr = array_flip($arr);
$arr = array_flip($arr);
de($arr);


前端页面渲染富文本,解决富文本中转移字符不能翻译问题

{$project.content|htmlspecialchars_decode}


获取时间

检索:获取上一年、上个月、上一周、前一天、下一年、下个月、下一周、明天时间

// 获取某一天的上下一年、一月、一周、一天
echo ( date( 'Y-m-d', strtotime('2019-07-09 +1 year') ) );
echo ( date( 'Y-m-d', strtotime('2019-07-09 -1 year') ) );
echo ( date( 'Y-m-d', strtotime('2019-07-09 +1 month') ) );
echo ( date( 'Y-m-d', strtotime('2019-07-09 -1 month') ) );
echo ( date( 'Y-m-d', strtotime('2019-07-09 +1 week') ) );
echo ( date( 'Y-m-d', strtotime('2019-07-09 -1 week') ) );
echo ( date( 'Y-m-d', strtotime('2019-07-09 +1 day') ) );
echo ( date( 'Y-m-d', strtotime('2019-07-09 -1 day') ) );


统计数组中一个值出现的次数

array_count_values($arr)

$arr = Array

(    [0] => 16    [1] => 18    [2] => 16    [3] => 16
...    [191] => 25    [192] => 25)

运行结果

Array(    [16] => 70    [18] => 34    [17] => 42    [25] => 45    [24] => 2)数组按键降序
arsort($arr);



用户头像
浮叶蓝空

BUG:http://kfgctest.ctojiayuan.com/static/index/js/php/controller.php?action=config&&noCache=1562918464188

Access denied.  

403 Forbidden  

2019-07-12 16:42:02
# 3
用户头像
天蓝色的彼岸

plexmedia

2019-07-11 00:56:42
# 2
用户头像
天蓝色的彼岸

https://downloads.plex.tv/plex-media-server-new/1.16.1.1291-158e5b199/debian/plexmediaserver_1.16.1.1291-158e5b199_armhf.deb

2019-07-11 00:58:18
# 1

友情链接 doywb

2018 Copyright© 米灵尔 小熊 豫ICP备15007436号-1

豫公网安备 41152302000146号