自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(61)
  • 收藏
  • 关注

原创 linux命令

find、xargs、grep配合使用。例:find . -name “*.py”|xargs grep test从当前目录及其子目录的py文件中搜索test关键字

2020-05-21 13:08:30 115

原创 PDO、DAO、ORM之间的区别

数据对象PDO (PHP Ddata Object) 扩展为PHP访问数据库定义了一个轻量级的一致接口。提供了一个数据访问抽象层,这意味着,不管使用哪种数据库,都可以用相同的函数(方法)来查询和获取数据。强调的是数据库连接。数据存取对象DAO(Data Access Object)描述了如何创建透明访问数据源的对象,目的就是为了解决重复与数据源抽象化。应用程序的主要处理代码不再需要考虑数据库引擎或表关系。DAO 是一个层,数据访问层。调用者可以使用统一的API操作不同类型的数据库。对象关系映射ORM(O

2020-05-17 22:40:38 1590 1

转载 mysql慢查询

例子优先:引子:为什么第一个查询using temporary,第二个查询不用临时表呢?下面两个查询,它们只差了一个order by,效果却迥然不同。第一个查询:EXPLAIN extendedSELECT ads.idFROM ads, city WHERE city.city_id = 8005 AND ads.status = 'online' AND city.ads_id=ads.idORDER BY ads.id desc执行计划为: id

2020-05-14 17:44:52 158

原创 PHP超全局变量$GLOBALS和global关键字

内容简介变量与作用域global关键字超全局变量$GLOBALS变量与作用域php的变量分为三类:局部变量,全局变量,静态变量同样php的作用域分为三类:1、local(局部作用域) 2、global(全局作用域) 3、static(静态作用域)local和global作用域通常情况local和global作用域是容易混淆的,如何区分这两种作用域呢?规则如下:1、函数外部声明的变量拥有全局作用域,只能在函数外部访问。2、函数内部声明的变量拥有局部作用域,只能在函数内部访问。PHP生命周期中,

2020-05-13 12:10:02 311

转载 最小栈

1、通过辅助栈,获取栈中的最小值思路:要做出这道题目,首先要理解栈结构先进后出的性质。对于栈来说,如果一个元素 a 在入栈时,栈里有其它的元素 b, c, d,那么无论这个栈在之后经历了什么操作,只要 a 在栈中,b, c, d 就一定在栈中,因为在 a 被弹出之前,b, c, d 不会被弹出。因此,在操作过程中的任意一个时刻,只要栈顶的元素是 a,那么我们就可以确定栈里面现在的元素一定是 a, b, c, d。那么,我们可以在每个元素 a 入栈时把当前栈的最小值 m 存储起来。在这之后无论何时,

2020-05-12 10:46:58 232

原创 正则表达式

一、正则表达式中?=和?:和?!的理解要理解?=和?!,首先需要理解前瞻,后顾,负前瞻,负后顾四个概念:1、前瞻:exp1(?=exp2) 查找exp2前面的exp12、后顾:(?<=exp2)exp1 查找exp2后面的exp13、负前瞻:exp1(?!exp2) 查找后面不是exp2的exp14、负后顾:(?<!=exp2)exp1 查找前面不是exp2的exp1...

2019-12-17 17:17:33 104

原创 去除文本中的html标签

function trimHtml($str, $allow = ''){ $str = str_replace(PHP_EOL, '', $str); $str = str_replace('<br />' , "\n", $str); $str = strip_tags($str, $allow); $str = str_replace(' ' ,...

2019-12-03 16:53:26 161

原创 Xdebug调试原理

一、Xdebug调试原理首先弄懂原理,就好配置了。右边机器(IP=10.0.1.2)是布署了Nginx/php的服务端(下文简称php服务端),左侧机器(IP=10.0.1.42)是布署了IDE(比如Phpstorm)的IDE端(下文简称IDE端)。调试中基本通信过程说明:过程说明:1.打开浏览器,访问web页面,nginx通过fastcgi网关接口加载PHP脚本运行 。2.然后ph...

2019-11-19 17:08:53 389

原创 phpspreadsheet 批量导出与批量导入

使用组件composer.json中添加该组件,执行composer update命令 "require": { "phpoffice/phpspreadsheet": "^1.9" },1、导出列表数据use PhpOffice\PhpSpreadsheet\Cell\DataValidation;use PhpOffice\PhpSpreadsheet\IO...

2019-11-01 18:32:14 1462

原创 数据导出CSV

public function actionSummaryExport(){ $post = \Yii::$app->request->post(); $model = new Model(); $model->load($post, ''); $list = $model->search(); ...

2019-05-09 15:31:12 212

原创 json_decode精度丢失问题

php7 json_decode精度丢失问题if (version_compare(phpversion(), '7.1', '&amp;gt;=')) { ini_set( 'serialize_precision', -1 );}

2019-01-17 11:59:06 991

原创 数组处理

1、递归去除参数两边空格$sweet = ['a' =&gt; ' apple', 'b' =&gt; ' banana '];$fruits = ['sweet' =&gt; $sweet, 'sour' =&gt; 'lemon'];array_walk_recursive($fruits, function(&amp;$value){$value = trim($value)...

2018-08-27 16:16:58 205

原创 redis命令大全

redis命令积累monitormonitor 是一个调试命令,返回服务器处理的每一个命令,它能帮助我们了解在数据库上发生了什么操作,可以通过redis-cli和telnet命令使用.//查看命令操作redis-cli -h IP monitor//匹配查看指定命令redis-cli -h IP monitor |grep "flush\|FLUSH"...

2018-06-26 17:04:17 293

原创 PHP浮点型在进行+-*%/存在不准确的问题

用php的+-*/计算浮点数的时候,可能会遇到一些计算结果错误的问题,比如echo intval( 0.58*100 );会打印57,而不是58,这个其实是计算机底层二进制无法精确表示浮点数的一个bug,是跨语言的。所以基本上大部分语言都供了精准计算的类库或函数库,比如php有BC高精确度函数库。要搞明白这个原因, 首先我们要知道浮点数的表示(IEEE 754):   浮点数, 以64位的长度(

2018-01-02 11:55:20 426

原创 从你日志开始提升

每天观察一下项目所记录的日志,你可以发现很多优化点。会让你有一种全局意识。比如:哪些日志是可以删除的,因为通过这个日志,你什么也看不到,看不懂。哪些日志是需要优化的,因为缺失的某些参数导致你不能很快定位出问题。哪些日志可以用来做简单的数据统计用。哪些日志可以帮助你理解一些接口返回的异常,进而优化接口,或者优化代码。

2017-11-21 11:47:48 205

转载 HTTP协议理解 + PHP使用curl函数发送Post请求的注意事项

php中的curl()函数进行post请求的时候,传递数据的格式可以有以下几种方式:1、由参数拼接而成的key=>value键值对字符串。形如以下: name=xxx&age=23$sex=1,这种请求参数默认是按照application/x-www-form-urlencoded进行编码的。2、由参数组成的key=>value键值对数组(只能是一维数组,更高维度的数组会报错)。 形如以下格式,这

2017-10-10 18:38:16 757

原创 PHP知识细节

1、PHP数组下标是区分大小写的 2、接受任意数目参数的函数,通过func_get_args()取得所有传入的参数,并返回一个数组 3、查看代码的内存使用情况,memory_get_usage() 函数,如果你想知道使用内存的峰值,你可以调用memory_get_peak_usage() 函数。 参考资料:https://juejin.im/entry/57514d681532bc00647d

2017-08-22 11:31:11 271

原创 YII2使用笔记

YII2使用笔记1、$model->load() will ignore those not in the rules of the model.

2017-08-17 15:31:02 197

原创 php字符串转与整数比较,会把字符串转化为整数来比较

我们来看几个例子:$str = 'a';$arr = array(0,1,2);var_dump($str == 0); //返回结果bool(true)var_dump(in_array($str, $arr)); //返回结果bool(true)var_dump(in_array($str, $arr, true)); //返回结果

2016-12-06 10:19:36 3142

转载 bootstrap模态框modal和select2合用时input无法获取焦点

场景:bootstrap模态框modal和select2合用时input无法获取焦点,导致输入法一直闪动,不能输入中文解决办法: 1、把页面中的 tabindex=”-1” 删掉;<div id="myModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hi

2016-10-25 11:03:33 2389 1

原创 JS基础知识积累

1、undefined返回不同的场景。 以window.xxx引用全局变量,寻找不到,会作为某个属性不存在,返回undefined. 直接以XXX引用某变量,寻找不到,则是报xxx is not defined错误。2、作用域问题。//场景1var str1 = 'global';function t1(){ console.log(str1); //global conso

2016-09-05 15:20:13 370

转载 jquery如何获取两个日期之间的所有日期

Date.prototype.format=function (){ var s=''; s+=this.getFullYear()+'-'; // 获取年份。 s+=(this.getMonth()+1)+"-"; // 获取月份。 s+= this.getDate(); // 获取日。 re

2016-08-23 18:00:44 4518

原创 压缩文件下载

ZipArchive + php实现文件的压缩下载$numPackage = ROOT_PATH . "/tmp/download/test.txt";$numPackageZip = ROOT_PATH . "/tmp/download/test.zip";$numPackageName = 'test.txt';if(!class_exists("ZipArchive")) { ec

2016-08-19 20:25:26 277

原创 欢迎使用CSDN-markdown编辑器

网站开发细节积累1、 取模 当允许用户上传图片或者文时,图片可以以日期(如20160816)为单位文件夹,归类图片。 其他的如果要根据特定的ID命名文件夹时,可以根据取模来减少文件夹数量。,例如: 根据1000取余,则可以把文件夹数量控制在1000内。 123%1000 =123; 1234%1000=234; 12345%1000=345; 123456%1

2016-08-16 20:14:36 257

原创 JS 筛选出1-100间的素数

JS 筛选出1-100间的素数素数概念:除了1和它本身以外不再有其他的因数,最小的素数为2。var x,arr=[];for(x=1;x<=100;x++){ arr.push(x);}//获取素数function get_primes(arr){ return arr.filter(function(y){ if (y == 1) {

2016-03-02 15:30:52 11074

原创 IE浏览器中JSON对象兼容性的问题

IE浏览器中JSON对象兼容性的问题针对于IE中ajax兼容性的原因主要是: 1、浏览器是否支持JSON对象; 2、定义对象或数组直接量时不同浏览器引擎对多余逗号的处理。解决浏览器是否支持JSON对象问题json2的下载地址 https://github.com/douglascrockford/JSON-js/blob/master/json2.js$.post('yourAction',{

2015-10-10 16:58:11 4894 1

原创 JS视频播放

1.HTML页面中视频播放支持方法一触发代码:<a href="javascript:void(0)" class="act-video" onclick="playVideo('e01608xXXX')"><strong class="hide">视频</strong></a> //'e01608xXXX' 视频ID弹出框代码:<article class="mod-game-dialo

2015-07-24 20:41:46 6673 1

原创 计时器显示

<p class="act-time">时间:00:00:00</p> <script type="text/javascript"> var c=0,t; function timedCount() { var temptext=$('.act-time'); hour = par

2015-07-08 18:03:24 656

原创 页面链接跳转小知识

window.location.href = url;1.当URL为一般网页连接时,跳转会覆盖当前页面。 2.当URL为下载链接,即.exe后缀的连接时,不会覆盖当前页面,实现exe的下载。Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键window.open(ur

2015-07-07 19:41:06 571

转载 svn: Can't convert string from 'UTF-8' to native encoding: 解决办法

svn: Can’t convert string from ‘UTF-8’ to native encoding: 解决办法在linux中,svn co 或 svn up 时有中文文件名的文件的话,可能会报下面的错:[root@linkea-dev-srv1 ~]# svn upsvn: Can't convert string from 'UTF-8' to native encoding:

2015-05-14 14:09:52 1707

原创 发现

淘宝的商品图片大小控制在40KB以下。

2015-04-20 16:11:30 380

原创 YII2 电话号码的验证规则

如果你的用户注册使用电话号码的话,那下面的验证是最适合不过的了。 ['mobile', 'number'], ['mobile', 'string', 'min' => 11], ['mobile', 'filter', 'filter' => 'trim'], ['mobile', 'unique', 'targetClass' => '\common\models\User', '

2015-04-17 14:21:41 6792 2

转载 如何将PHP作为Shell脚本语言使用

我们都知道,PHP是一种非常好的动态网页开发语言(速度飞快,开发周期短……)。但是只有很少数的人意识到PHP也可以很好的作为编写Shell脚本的语言,当PHP作为编写Shell脚本的语言时,他并没有Perl或者Bash那么强大,但是他却有着很好的优势,特别是对于我这种熟悉PHP但是不怎么熟悉Perl的人。 要使用PHP作为Shell脚本语言,你必须将PHP作为二进制的CGI编译,而不是Apache模

2015-04-14 15:58:42 866

原创 杂记

记录开发中遇到的需要注意的小细节。 1.在服务器上配置root目录时,使用YI框架,一般到web目录,注意web目录后面的’/’。 2.页面中的图片路径最好加’/’,避免最终路径错误。 3.微信支付的回调地址中的’https’引发的file not found问题。

2015-04-14 14:59:38 474

原创 YII 创建从后台到前台的链接配置

后台配置文件中添加:'components' => [ 'urlManager' => [ // here is your normal backend url manager config ], 'urlManagerFrontend' => [ // here is your frontend URL

2015-04-09 11:08:50 2116

原创 判断是否为微信浏览器

1、PHPif(strpos($_SERVER['HTTP_USER_AGENT'],"MicroMessenger ")){ echo "微信浏览器";}2、JSvar ua = window.navigator.userAgent.toLowerCase(); if(ua.match(/MicroMessenger/i) == 'micromessenger'){

2015-04-03 09:44:34 455

原创 YII2与Bootstrap

今天突然发现用Bootstrap 中的导航组件写的功能没效果了,查看原理是没有加载到bootstrap.js文件,添加depends就好了。<?phpnamespace frontend\assets;use yii\web\AssetBundle;class AppAsset extends AssetBundle{ public $basePath = '@webroot';

2015-03-27 14:38:56 1871

原创 CSS使用积累

CSS使用积累1.DropdownBootstrap dropdown with mouse hover rather than click.<div class="btn-group"> <a class="btn dropdown-toggle" data-toggle="dropdown" href="#"> Action <span class="caret"></spa

2015-03-24 12:01:12 529

原创 js时间的处理

1.Date对象var myDate = new Date(); myDate.getFullYear(); //获取完整的年份(4位,1970-????) myDate.getMonth(); //获取当前月份(0-11,0代表1月) myDate.getDate(); //获取当前日(1-31) myDate.getDay();

2015-03-20 13:43:07 473

原创 服务器上部署GIT上线命令

服务器上部署GIT上线命令结构: 服务器+本地环境1.在服务器git上建立一个裸仓库# 服务器上$ mkdir project.git$ cd project.git$ git --bare init2.将你本地的代码上传到服务器# 在你的电脑上$ cd myproject$ git init$ git add .$ git commit -m 'initial commit

2015-03-20 13:18:14 1278

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除