
PHP
程序员小猪。
这个作者很懒,什么都没留下…
展开
-
laravel在中间件内生成参数并且传递到控制器3种方法
方法1使用request−>attributes−>add(request->attributes->add(request−>attributes−>add(arr)方法Demo:注册中间件这部分就不说了 主要说用法在中间件中传递参数lass MidParams //中间件{ public function handle($request, Closure $next) { $mid_params = ['mid_params原创 2022-04-18 11:50:17 · 1644 阅读 · 0 评论 -
laravel 执行原生sql
1.插入数据DB::insert('insert into test (id, name, email, password) values (?, ?, ? , ? )',[1, 'Laravel','laravel@test.com','Laravel']);2.查询语句$user = DB::select('select * from test where id = ?', [1]); //我们还 可以看到在执行查询的时候使用了参数绑定,以避免SQL注入。除此之//外还可以使用命名绑转载 2021-08-16 15:06:57 · 1300 阅读 · 0 评论 -
PHP反射和依赖注入
PHP类的反射和依赖注入在讲服务容器之前我想先梳理下PHP反射相关的知识,PHP反射是程序实现依赖注入的基础,也是Laravel的服务容器实现服务解析的基础,如果你已经掌握了这方面基础知识,那么可以跳过本文直接看服务容器部分的内容。PHP具有完整的反射 API,提供了对类、接口、函数、方法和扩展进行逆向工程的能力。通过类的反射提供的能力我们能够知道类是如何被定义的,它有什么属性、什么方法、方法都有哪些参数,类文件的路径是什么等很重要的信息。也正是因为类的反射很多PHP框架才能实现依赖注入自动解决类与类之转载 2021-01-20 14:02:46 · 231 阅读 · 0 评论 -
Mac 安装 RabbitMQ
// 更新brew资源brew update// 执行安装brew install rabbitmq当你看到下图中的文字,则证明已经安装成功了.MQ的安装目录在 /usr/local/Cellar/rabbitmq安装RabiitMQ的可视化监控插件// 切换到MQ目录,注意你的安装版本可能不是3.8.8cd /usr/local/Cellar/rabbitmq/3.8.8/// 启用rabbitmq management插件sudo sbin/rabbitmq-plugins ena原创 2020-10-22 17:12:10 · 715 阅读 · 1 评论 -
Mac使用brew安装老版php7.1、php5.6
首先通过 brew search php查看是否能找到对对应的php版本,eg:表示目前可安装的php版本只有php php@7.2 php@7.3也就是说没有我想安装的php7.1版本或者更老的php版本。通过命令 brew tap exolnet/homebrew-deprecated可以将老的或者已经遗弃的php版本找回来。安装完之后继续使用 brew search php发现 老版本的php回来了再通过 brew install exolnet/deprecated/php@7.原创 2020-09-17 17:02:46 · 2222 阅读 · 1 评论 -
Mac 解决安装brew卡在 “Cloning into ‘/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core‘...”
1. 前言不管是在brew的安装过程还是升级更新过程中,国内的环境brew都会卡在这里2. 解决方法cd /usr/local/Homebrew/Library/Taps/mkdir homebrewcd homebrewgit clone https://mirrors.ustc.edu.cn/homebrew-core.git3. 更新brew update...原创 2020-09-17 14:39:48 · 14623 阅读 · 12 评论 -
完全卸载/删除mac自带php
rootless内核保护删除php文件时,你会发现没有权限删除,自带php受系统保护,关闭rootless查看rootless状态csrutil status //查看rootless状态enable //开启关闭rootless重启电脑开后按住 Command+R 进入恢复分区. 然后在 实用工具 栏找到 终端启动运行.csrutil disable //关闭rootlessreboot //重启开启rootless建议删除完php后,打开rootlesscsrutil enab原创 2020-09-16 16:42:35 · 5590 阅读 · 1 评论 -
Notice: Use of undefined constant MCRYPT_RIJNDAEL_128 - assumed ‘MCRYPT_RIJNDAEL_128‘ in
错误:Notice: Use of undefined constant MCRYPT_RIJNDAEL_128 - assumed ‘MCRYPT_RIJNDAEL_128’ in /http/www.mywakavLee.cn/config/app.php on line 83原因:缺少 mcrypt 扩展解决方法:安装 mcrypt 扩展php的 mcrypt扩展,在php7.1版本以后便不支持,在7.2版本则直接废弃。首先看下你的 php 版本,如果是 php7.1 以上,那么就需要你手动原创 2020-09-16 16:12:00 · 1128 阅读 · 0 评论 -
php7.1以上 php 7.2/php7.3/php8.0 安装 mcrypt 扩展
php的 mcrypt扩展,在php7.1版本以后便不支持,在7.2版本则直接废弃。1. 下载 mcrypt 扩展源码下载地址 https://pecl.php.net/package/mcrypt我下载的是1.0.3,下载最新版即可2. mcrypt 扩展安装下载好之后,进行解压tar xf mcrypt-1.0.3.tgz进行扩展安装然后进入到源码目录cd mcrypt-1.0.3通过 phpize 建立 php 外挂模式phpize生成相应的makefile./conf.原创 2020-09-16 16:04:40 · 2985 阅读 · 0 评论 -
PHP内存泄漏问题解析
内存泄漏内存泄漏指的是在程序运行过程中申请了内存,但是在使用完成后没有及时释放的现象, 对于普通运行时间较短的程序来说可能问题不会那么明显,但是对于长时间运行的程序, 比如Web服务器,后台进程等就比较明显了,随着系统运行占用的内存会持续上升, 可能会因为占用内存过高而崩溃,或被系统杀掉PHP的内存泄漏PHP属于高级语言,语言级别并没有内存的概念,在使用过程中完全不需要主动申请或释放内存, 所以在PHP用户代码级别也就不存在内存泄漏的概念了。但毕竟PHP是使用C编写的解释器,而C语言的程序是原创 2020-09-03 11:32:05 · 446 阅读 · 0 评论 -
php自动获取字符串编码函数mb_detect_encoding,文件编码GBK转UTF-8
Windows电脑 xlsx、CSV 文件,上传到 Linux 服务器上,文件内容中的中文出现乱码。所以在 move_uploaded_file() 之前要把,文件内容的格式由 GBK 转换 为 UTF-8//读取原文件内容$read = file_get_contents($file['tmp_name']);//判断文件内容编码格式$encode = mb_detect_encoding($read,array('ASCII','GB2312','GBK‘,'UTF-8'));//如果不是原创 2020-08-06 15:39:56 · 585 阅读 · 0 评论 -
PHP:Cannot modify header information - headers already sent by出错解决
<?phpob_start();setcookie("username","test",time()+3600);echo "the username is:".$HTTP_COOKIE_VARS["username"]."\n";echo "the username is:".$_COOKIE["username"]."\n";print_r($_COOKIE);?>访问该PHP文件时提示Warning: Cannot modify header information - h.原创 2020-08-04 14:01:20 · 469 阅读 · 0 评论 -
PHP判断两个时间段是否有交集
/** * PHP计算两个时间段是否有交集(边界重叠不算) * * @param string $beginTime1 开始时间1 * @param string $endTime1 结束时间1 * @param string $beginTime2 开始时间2 * @param string $endTime2 结束时间2 *...原创 2020-05-02 17:34:19 · 991 阅读 · 1 评论 -
执行 composer update 命令的时候报 Your requirements could not be resolved to an installable set of packages.
Your requirements could not be resolved to an installable set of packages.以上原因:不匹配composer.json要求的版本。解决方案:composer可以设置忽略版本匹配,composer install --ignore-platform-reqscomposer update --i...原创 2020-05-02 17:33:00 · 824 阅读 · 0 评论 -
mac下使用brew安装nginx
安装brew install nginx启动brew services start nginx打开http://localhost:8080,看到这个页面说明启动成功停止brew services stop nginx重启(会先stop,再start)brew services restart nginx重新加载配置(不会stop,只是重新加载配置)ng...原创 2020-04-26 14:41:20 · 807 阅读 · 0 评论 -
mac下操作 nginx 安装、重启、卸载、查看路径
1. nginxnginx [engine x] is an HTTP and reverse proxy server, a mail proxy server, and a generic TCP/UDP proxy server.从niginx基本介绍上看到Other HTTP server features中有一项:FLV and MP4 streaming;可知nginx也支...原创 2020-04-26 14:39:39 · 681 阅读 · 0 评论 -
Mac 使用homebrew搭建 PHP 运行环境
Homebrew是一款超级好用的包管理工具,可以实现快速搭建各种开发环境。1、如果没有安装brew,复制以下命令,ENTER/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"2、安装MySQLbrew install mysql...原创 2020-04-26 14:36:56 · 451 阅读 · 0 评论 -
laravel出现proc_open(): fork failed - Cannot allocate memory的错误
laravel会出现proc_open(): fork failed - Cannot allocate memory的报错,具体如下:[2019-11-01 00:21:02] production.ERROR: exception 'ErrorException' with message 'proc_open(): fork failed - Cannot allocate memory'...原创 2019-11-01 14:41:03 · 1290 阅读 · 0 评论 -
laravel清除视图缓存
清除视图缓存,就是清除D:\phpStudy\WWW\BCCKidV1.0\storage\framework\views\002f30b1cb2dfabccb4d098aa01326ed06eaba7a.php这些编译好了的视图缓存。php artisan view:clear清除运行缓存:php artisan cache:clear清除配置缓存:php artisan conf...原创 2019-11-01 14:38:18 · 930 阅读 · 0 评论 -
Laravel6.0 模型关联基础教程
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CLNU5jvI-1570869651941)(https://cdn.learnku.com/uploads/images/201908/11/1/PN5PDh8HGs.png!/fw/1240)]在 Laravel 中定义模型关联是每个 Laravel 开发者可能已经做过不止一次的事情。但是在试图实现关联时可能会遇...原创 2019-10-12 16:42:03 · 825 阅读 · 0 评论 -
php and 和 &&的一个坑
我原来以为PHP中的and和&&是一样的, 只是写法上为了可读性和美观, 事实上我错了. 这里面深藏了一个坑!看以下代码:$bA = true;$bB = false;$b1 = $bA and $bB;$b2 = $bA && $bB;var_dump($b1); // $b1 = truevar_dump($b2); // $b2 = false...原创 2019-08-19 14:05:07 · 261 阅读 · 0 评论 -
php trait 冲突的解决 insteadof
冲突的解决如果两个 trait 都插入了一个同名的方法,如果没有明确解决冲突将会产生一个致命错误。为了解决多个 trait 在同一个类中的命名冲突,需要使用 insteadof 操作符来明确指定使用冲突方法中的哪一个。以上方式仅允许排除掉其它方法,as 操作符可以 为某个方法引入别名。 注意,as 操作符不会对方法进行重命名,也不会影响其方法。Example #5 冲突的解决在本例中 T...原创 2019-06-11 11:18:36 · 1109 阅读 · 0 评论 -
php使用异或xor调换两个变量的值的原理
1、首先,我们要知道什么是异或,异或,简单来说就是:相同的两个数,异或的结果是0;不同的两个数,异或的结果是1。2、0和0,异或的结果是0。1和1,异或的结果是0。0和1,异或的结果是1。于是我们发现,在0和1的世界里:A和B异或,结果是C;B和C异或的结果一定是A;A和C异或的结果一定是B。3、写成php:$a = 0;$b = 1;$c = $a ^ $b; //A和B异或,结果是C...原创 2019-06-10 11:13:55 · 860 阅读 · 0 评论 -
PHP---保留小数并且 不四舍五入
保留两位小数不进行四舍五入$num=3.149;$new_num=floor($num*100)/100;echo $new_num;//结果3.14保留两位小数,四舍五入$num = 3.14999; echo sprintf("%.2f", $num); //结果3.15echo round($num,2);//结果3.15取整ceil()//进一取整floor()//...原创 2019-06-05 01:31:14 · 1001 阅读 · 0 评论 -
记一次MAC配置LNMP PHP环境的坑
macos 自带了 php如果不想卸载的话只需要安装 nginx 和 mysql 就行了mac下使用 homebrew 安装软件还是很方便的brew install nginxbrew install mysql安装好 nginx 和 mysql 之后,下面开始配置域名信息下面以 zhumingzhen.test 这个本地域名为例来演示首先使用 nginx -t 查看 nginx...原创 2019-05-30 23:11:52 · 1044 阅读 · 0 评论 -
phpstorm使用phpcs检查符合PSR-2的代码格式
20170401149103243062130.pngphpStorm支持psr的规范安装phpcsbrew install php-code-sniffer20170401149103125567067.png那么安装完成后的路径就是:/usr/local/Cellar/php-code-sniffer/2.8.1/bin/phpcs在phpstorm设置ph...原创 2019-04-29 22:12:16 · 747 阅读 · 0 评论 -
驼峰命名和下划线命名互转php实现
驼峰命名和下划线命名经常需要互转,下面提供两种php的实现方式.第一种方法效率相对差一些,实现方式如下: //驼峰命名转下划线命名 function toUnderScore($str) { $dstr = preg_replace_callback('/([A-Z]+)/',function($matchs) { ...原创 2019-04-18 14:46:28 · 605 阅读 · 0 评论 -
composer install composer update 失败,无法用 unzip 解压归档、proc_open() 函数未支持
前言记得最近好像有不只一个朋友问过 composer install 安装依赖时出现异常,导致项目无法运行。下面简单记录一下其中 2 个比较频繁问题的解决办法。问题 & 解决proc_open依赖异常消息:The Process class relies on proc_open, which is not available on your PHP installat...原创 2019-03-27 09:39:11 · 918 阅读 · 0 评论 -
laravel 获取上一条insert语句产生的id,最后一次id
1、$id = DB::getPdo()-&gt;lastInsertId();2、$arr = [‘id’=&gt;1,‘name’=&gt;‘bob’];id=DB::table()−&amp;gt;insertGetId(id = DB::table()-&amp;gt;insertGetId(id=DB::table()−&gt;insertGetId(arr);...原创 2018-12-21 11:24:11 · 7138 阅读 · 0 评论 -
字符串截取函数substr()
substr(参数1,参数2[,参数3]);该系统函数返回被截后的子字符串,它接受2个必选参数,参数1为要截取的字符串,参数2为截取的开始位置,参数3可选,表示截取长度。例子:substr(“abcdef”,1);//返回"bcdef",从索引1处开始截取,如果没有指定截取长度,默认截取后面的所有字符。substr(“abcdef”,1,3);//返回"bcd",从索引1处开始截取3个字符。...原创 2018-10-25 10:29:26 · 28842 阅读 · 0 评论 -
laravel 自增 自减 操作
DB::table('users')->increment('votes'); // 自增 1 DB::table('users')->increment('votes', 5); // 自增 5 DB::table('users')->decrement('votes'); // 自减 1DB::table('users')->decrement('votes'...原创 2018-09-26 09:58:06 · 7431 阅读 · 0 评论 -
如何让你的 Laravel API 永远返回 JSON 格式的响应?
当你在编写完全为 API 服务的 Laravel 应用时,你希望所有响应都是 JSON 格式的,而不是例如说授权错误会重定向到 /home 或 /login,最终重定向会变成 InvalidArgumentException: Route [login] is not defined. 的视图。下面这个简单的方案,可以让你的 Laravel 应用优先响应为 JSON 格式。第一步、编写 Bas...原创 2018-09-26 09:53:01 · 2850 阅读 · 0 评论 -
Mac完全删除Vagrant
Vagrant依赖比较多几行命令,同样搞定卸载程序和依赖rm -rf /opt/vagrantrm -f /usr/local/bin/vagrantsudo pkgutil --forget com.vagrant.vagrant删除用户数据rm -rf ~/.vagrant rm -rf ~/.vagrant.d...原创 2018-09-26 09:52:28 · 6419 阅读 · 1 评论 -
laravel5框架下报错Class 'Predis\Client' not found
报这个错误是因为缺少 predis 包的问题, 只需要引入一下 predis 包就可以了 在项目目录下执行composer require predis/predis ^1.1等待安装完成就可以了原创 2018-08-02 11:43:50 · 9815 阅读 · 0 评论 -
使用laravel的Eloquent模型获取数据库指定列
使用Laravel的ORM——Eloquent时,时常遇到的一个操作是取模型中的其中一些属性,对应的就是在数据库中取表的特定列。 如果使用DB门面写查询构造器,那是需要链式调用select()方法即可:$users = DB::table('users')->select('name', 'email as user_email')->get();使用Eloq...原创 2018-07-22 10:30:06 · 2228 阅读 · 0 评论 -
laravel-admin集成百度富文本编辑器ueditor
首先要说的是laravel-admin真的是一个非常适合做管理后台的package。 官方文档有集成wangEditor、ckeditor、PHP editor的示例,如果这几个编辑器能满足你的需求可以参照官方文档操作。ueditor是百度开源的一款编辑器,其中它的源代码模式真的是非常实用的,能让你更大限度的定制你的内容。这里再介绍一个package laravel-u-edit...原创 2018-05-11 11:55:13 · 8564 阅读 · 16 评论 -
nginx访问php文件,报502 bad gateway解决方法
问题描述:nginx下,访问php文件,报502错误。解决方案:1. 检查nginx是否配置了php的代理,具体如下:(1)打开nginx.conf,检查是否有如下配置:bad gateway解决方法" title="nginx访问php文件,报502 bad gateway解决方法" style="margin:0px; padding:0px原创 2018-03-11 22:03:01 · 12256 阅读 · 1 评论 -
nginx、fastCGI、php-fpm关系梳理
前言: Linux下搭建nginx+php+memached(LPMN)的时候,nginx.conf中配需要配置fastCGI,php需要安装php-fpm扩展并启动php-fpm守护进程,nginx才可以解析php脚本。那么,这样配置的背后原理是什么?nginx、fastCGI、php-fpm之间又有什么关系呢?博主一直有这样的疑惑,由于无法理清nginx、php-fpm之间的关系,遇到ngi...转载 2018-03-11 21:58:02 · 754 阅读 · 0 评论 -
php中cal_days_in_month不可用时的替代方法
首先介绍下cal_days_in_month方法cal_days_in_month 获取指定月的总天数cal_days_in_month(calendar,month,year);最近运营反应说统计报表不能用了,展示不出数据了。正好今天闲了下来,排查问题发现是cal_days_in_month方法的问题。前几天由于升级服务器ph编译是没有加上–enable-calendar原创 2018-01-23 16:25:07 · 2680 阅读 · 0 评论 -
nginx 报错 connect() failed (111: Connection refused) while connecting to upstream
公司网站搬迁到新服务器后,发现站点访问不了,network里面提示502,查看相关的server配置,感觉没有什么问题,经过测试发现txt、html、等非php文件能够直接访问,也就是php访问不了,初步断定有可能是php-fpm没有安装或者没有启动导致。首先判断php-fpm是否已经安装,没有安装的情况就需要先安装php-fpm,安装可以参数相关资料。确定好服务器已经安装了php-fpm...转载 2017-11-30 23:03:23 · 956 阅读 · 0 评论