- 博客(61)
- 收藏
- 关注
原创 linux命令
find、xargs、grep配合使用。例:find . -name “*.py”|xargs grep test从当前目录及其子目录的py文件中搜索test关键字
2020-05-21 13:08:30 144
原创 PDO、DAO、ORM之间的区别
数据对象PDO (PHP Ddata Object) 扩展为PHP访问数据库定义了一个轻量级的一致接口。提供了一个数据访问抽象层,这意味着,不管使用哪种数据库,都可以用相同的函数(方法)来查询和获取数据。强调的是数据库连接。数据存取对象DAO(Data Access Object)描述了如何创建透明访问数据源的对象,目的就是为了解决重复与数据源抽象化。应用程序的主要处理代码不再需要考虑数据库引擎或表关系。DAO 是一个层,数据访问层。调用者可以使用统一的API操作不同类型的数据库。对象关系映射ORM(O
2020-05-17 22:40:38 1798 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 190
原创 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 346
转载 最小栈
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 259
原创 正则表达式
一、正则表达式中?=和?:和?!的理解要理解?=和?!,首先需要理解前瞻,后顾,负前瞻,负后顾四个概念:1、前瞻:exp1(?=exp2) 查找exp2前面的exp12、后顾:(?<=exp2)exp1 查找exp2后面的exp13、负前瞻:exp1(?!exp2) 查找后面不是exp2的exp14、负后顾:(?<!=exp2)exp1 查找前面不是exp2的exp1...
2019-12-17 17:17:33 130
原创 去除文本中的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 187
原创 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 416
原创 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 1521
原创 数据导出CSV
public function actionSummaryExport(){ $post = \Yii::$app->request->post(); $model = new Model(); $model->load($post, ''); $list = $model->search(); ...
2019-05-09 15:31:12 280
原创 json_decode精度丢失问题
php7 json_decode精度丢失问题if (version_compare(phpversion(), '7.1', '&gt;=')) { ini_set( 'serialize_precision', -1 );}
2019-01-17 11:59:06 1104
原创 数组处理
1、递归去除参数两边空格$sweet = ['a' => ' apple', 'b' => ' banana '];$fruits = ['sweet' => $sweet, 'sour' => 'lemon'];array_walk_recursive($fruits, function(&$value){$value = trim($value)...
2018-08-27 16:16:58 224
原创 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 321
原创 PHP浮点型在进行+-*%/存在不准确的问题
用php的+-*/计算浮点数的时候,可能会遇到一些计算结果错误的问题,比如echo intval( 0.58*100 );会打印57,而不是58,这个其实是计算机底层二进制无法精确表示浮点数的一个bug,是跨语言的。所以基本上大部分语言都供了精准计算的类库或函数库,比如php有BC高精确度函数库。要搞明白这个原因, 首先我们要知道浮点数的表示(IEEE 754): 浮点数, 以64位的长度(
2018-01-02 11:55:20 450
原创 从你日志开始提升
每天观察一下项目所记录的日志,你可以发现很多优化点。会让你有一种全局意识。比如:哪些日志是可以删除的,因为通过这个日志,你什么也看不到,看不懂。哪些日志是需要优化的,因为缺失的某些参数导致你不能很快定位出问题。哪些日志可以用来做简单的数据统计用。哪些日志可以帮助你理解一些接口返回的异常,进而优化接口,或者优化代码。
2017-11-21 11:47:48 226
转载 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 815
原创 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 296
原创 YII2使用笔记
YII2使用笔记1、$model->load() will ignore those not in the rules of the model.
2017-08-17 15:31:02 225
原创 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 3177
转载 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 2416 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 389
转载 jquery如何获取两个日期之间的所有日期
Date.prototype.format=function (){ var s=''; s+=this.getFullYear()+'-'; // 获取年份。 s+=(this.getMonth()+1)+"-"; // 获取月份。 s+= this.getDate(); // 获取日。 re
2016-08-23 18:00:44 4582
原创 压缩文件下载
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 302
原创 欢迎使用CSDN-markdown编辑器
网站开发细节积累1、 取模 当允许用户上传图片或者文时,图片可以以日期(如20160816)为单位文件夹,归类图片。 其他的如果要根据特定的ID命名文件夹时,可以根据取模来减少文件夹数量。,例如: 根据1000取余,则可以把文件夹数量控制在1000内。 123%1000 =123; 1234%1000=234; 12345%1000=345; 123456%1
2016-08-16 20:14:36 284
原创 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 11159
原创 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 4967 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 6925 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 675
原创 页面链接跳转小知识
window.location.href = url;1.当URL为一般网页连接时,跳转会覆盖当前页面。 2.当URL为下载链接,即.exe后缀的连接时,不会覆盖当前页面,实现exe的下载。Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键window.open(ur
2015-07-07 19:41:06 601
转载 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 1750
原创 YII2 电话号码的验证规则
如果你的用户注册使用电话号码的话,那下面的验证是最适合不过的了。 ['mobile', 'number'], ['mobile', 'string', 'min' => 11], ['mobile', 'filter', 'filter' => 'trim'], ['mobile', 'unique', 'targetClass' => '\common\models\User', '
2015-04-17 14:21:41 6841 2
转载 如何将PHP作为Shell脚本语言使用
我们都知道,PHP是一种非常好的动态网页开发语言(速度飞快,开发周期短……)。但是只有很少数的人意识到PHP也可以很好的作为编写Shell脚本的语言,当PHP作为编写Shell脚本的语言时,他并没有Perl或者Bash那么强大,但是他却有着很好的优势,特别是对于我这种熟悉PHP但是不怎么熟悉Perl的人。 要使用PHP作为Shell脚本语言,你必须将PHP作为二进制的CGI编译,而不是Apache模
2015-04-14 15:58:42 892
原创 杂记
记录开发中遇到的需要注意的小细节。 1.在服务器上配置root目录时,使用YI框架,一般到web目录,注意web目录后面的’/’。 2.页面中的图片路径最好加’/’,避免最终路径错误。 3.微信支付的回调地址中的’https’引发的file not found问题。
2015-04-14 14:59:38 498
原创 YII 创建从后台到前台的链接配置
后台配置文件中添加:'components' => [ 'urlManager' => [ // here is your normal backend url manager config ], 'urlManagerFrontend' => [ // here is your frontend URL
2015-04-09 11:08:50 2146
原创 判断是否为微信浏览器
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 476
原创 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 1896
原创 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 551
原创 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 495
原创 服务器上部署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 1301
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人