php
邱儿
这个作者很懒,什么都没留下…
展开
-
PDO、DAO、ORM之间的区别
数据对象PDO (PHP Ddata Object) 扩展为PHP访问数据库定义了一个轻量级的一致接口。提供了一个数据访问抽象层,这意味着,不管使用哪种数据库,都可以用相同的函数(方法)来查询和获取数据。强调的是数据库连接。数据存取对象DAO(Data Access Object)描述了如何创建透明访问数据源的对象,目的就是为了解决重复与数据源抽象化。应用程序的主要处理代码不再需要考虑数据库引擎或表关系。DAO 是一个层,数据访问层。调用者可以使用统一的API操作不同类型的数据库。对象关系映射ORM(O原创 2020-05-17 22:40:38 · 1745 阅读 · 1 评论 -
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 · 331 阅读 · 0 评论 -
正则表达式
一、正则表达式中?=和?:和?!的理解要理解?=和?!,首先需要理解前瞻,后顾,负前瞻,负后顾四个概念:1、前瞻:exp1(?=exp2) 查找exp2前面的exp12、后顾:(?<=exp2)exp1 查找exp2后面的exp13、负前瞻:exp1(?!exp2) 查找后面不是exp2的exp14、负后顾:(?<!=exp2)exp1 查找前面不是exp2的exp1...原创 2019-12-17 17:17:33 · 116 阅读 · 0 评论 -
去除文本中的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 · 175 阅读 · 0 评论 -
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 · 402 阅读 · 0 评论 -
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 · 1500 阅读 · 0 评论 -
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 · 807 阅读 · 0 评论 -
PHP浮点型在进行+-*%/存在不准确的问题
用php的+-*/计算浮点数的时候,可能会遇到一些计算结果错误的问题,比如echo intval( 0.58*100 );会打印57,而不是58,这个其实是计算机底层二进制无法精确表示浮点数的一个bug,是跨语言的。所以基本上大部分语言都供了精准计算的类库或函数库,比如php有BC高精确度函数库。要搞明白这个原因, 首先我们要知道浮点数的表示(IEEE 754): 浮点数, 以64位的长度(原创 2018-01-02 11:55:20 · 439 阅读 · 0 评论 -
数组处理
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 · 208 阅读 · 0 评论 -
json_decode精度丢失问题
php7 json_decode精度丢失问题if (version_compare(phpversion(), '7.1', '&gt;=')) { ini_set( 'serialize_precision', -1 );}原创 2019-01-17 11:59:06 · 1078 阅读 · 0 评论 -
数据导出CSV
public function actionSummaryExport(){ $post = \Yii::$app->request->post(); $model = new Model(); $model->load($post, ''); $list = $model->search(); ...原创 2019-05-09 15:31:12 · 255 阅读 · 0 评论 -
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 · 284 阅读 · 0 评论 -
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 · 3169 阅读 · 0 评论 -
在model中递归调用model本身时的死循环问题。
我在model自定义中验证中,进行了数据更新操作$model->update();而updata时会引起验证,这样就导致了死循环。报错为:“Fatal error: Maximum function nesting level of '100' reached, aborting”。还好同事给我指出了问题关键,要不然我又会根据网上的方法走偏。原创 2014-12-16 17:41:36 · 782 阅读 · 1 评论 -
容易混淆的四个php函数strstr strrchr substr stristr
一,strstr和strcchr的区别strstr 显示第一次找到,要查找的字符串,以及后面的字符串。strrchr 显示最后一次找到,要查找的字符串,以及后面的字符串。PHP123456789101112 $email = 'zhangying@51xxx.co转载 2014-12-19 11:07:24 · 747 阅读 · 0 评论 -
yii2 session的使用方法
yii2打开sessionuse yii\web\Session; $session = Yii::$app->session;// check if a session is already openif ($session->isActive) ...// open a session$session->open();// close a session$session-转载 2015-01-16 17:36:06 · 1807 阅读 · 0 评论 -
Yii2中记录log日志的配置和使用方法
日志配置'components' => [ 'log' => [ 'traceLevel' => YII_DEBUG? 3 : 0, 'targets' => [ [ 'class' =>'yii\log\FileTarget', 'levels' =>原创 2015-01-16 17:50:02 · 6700 阅读 · 0 评论 -
Yii中ajax提交注意事项
1 Yii中为了防止csrf攻击,封装了CSRF令牌。csrf都是由Yii::$app->request处理的。1.1 YII框架安装默认开启了csrf验证,关闭验证的方法如下'components' => [ 'request' => [ // !!! insert a secret key in the following (if it is e原创 2015-01-28 11:25:58 · 1005 阅读 · 0 评论 -
PHP CodeBase: 判断用户是否手机访问
随着移动设备的普及,网站也会迎来越来越多移动设备的访问。用适应PC的页面,很多时候对手机用户不友好,那么有些时候,我们需要判断用户是否用手机访问,如果是手机的话,就跳转到指定的手机友好页面。这里就介绍一下,如何判断用户是否用手机访问。自定义的函数如下:1234567891011转载 2015-01-19 14:40:09 · 532 阅读 · 0 评论 -
关于使用ajax传递数据注事事项
1,传递数据方法 "POST", "GET"。默认为 "GET"。2,数据返回类型dataType ,即预期服务器返回的数据类型。可用值:"xml": 返回 XML 文档,可用 jQuery 处理。"html": 返回纯文本 HTML 信息;包含的 script 标签会在插入 dom 时执行。"script": 返回纯文本 JavaScript 代码。不会自动缓存结果。除非原创 2014-12-18 15:16:08 · 520 阅读 · 0 评论 -
如何将PHP作为Shell脚本语言使用
我们都知道,PHP是一种非常好的动态网页开发语言(速度飞快,开发周期短……)。但是只有很少数的人意识到PHP也可以很好的作为编写Shell脚本的语言,当PHP作为编写Shell脚本的语言时,他并没有Perl或者Bash那么强大,但是他却有着很好的优势,特别是对于我这种熟悉PHP但是不怎么熟悉Perl的人。 要使用PHP作为Shell脚本语言,你必须将PHP作为二进制的CGI编译,而不是Apache模转载 2015-04-14 15:58:42 · 881 阅读 · 0 评论 -
压缩文件下载
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 · 293 阅读 · 0 评论 -
mac上安装使用composer
1.安装brew install composer2.初始化composer init原创 2014-11-21 14:50:04 · 562 阅读 · 0 评论