
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 · 1681 阅读 · 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 · 1315 阅读 · 0 评论 -
PHP反射和依赖注入
PHP类的反射和依赖注入在讲服务容器之前我想先梳理下PHP反射相关的知识,PHP反射是程序实现依赖注入的基础,也是Laravel的服务容器实现服务解析的基础,如果你已经掌握了这方面基础知识,那么可以跳过本文直接看服务容器部分的内容。PHP具有完整的反射 API,提供了对类、接口、函数、方法和扩展进行逆向工程的能力。通过类的反射提供的能力我们能够知道类是如何被定义的,它有什么属性、什么方法、方法都有哪些参数,类文件的路径是什么等很重要的信息。也正是因为类的反射很多PHP框架才能实现依赖注入自动解决类与类之转载 2021-01-20 14:02:46 · 239 阅读 · 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 · 725 阅读 · 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 · 2284 阅读 · 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 · 14786 阅读 · 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 · 5615 阅读 · 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 · 1145 阅读 · 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 · 3049 阅读 · 0 评论 -
PHP内存泄漏问题解析
内存泄漏内存泄漏指的是在程序运行过程中申请了内存,但是在使用完成后没有及时释放的现象, 对于普通运行时间较短的程序来说可能问题不会那么明显,但是对于长时间运行的程序, 比如Web服务器,后台进程等就比较明显了,随着系统运行占用的内存会持续上升, 可能会因为占用内存过高而崩溃,或被系统杀掉PHP的内存泄漏PHP属于高级语言,语言级别并没有内存的概念,在使用过程中完全不需要主动申请或释放内存, 所以在PHP用户代码级别也就不存在内存泄漏的概念了。但毕竟PHP是使用C编写的解释器,而C语言的程序是原创 2020-09-03 11:32:05 · 453 阅读 · 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 · 602 阅读 · 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 · 483 阅读 · 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 · 1004 阅读 · 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 · 838 阅读 · 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 · 826 阅读 · 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 · 690 阅读 · 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 · 459 阅读 · 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 · 1296 阅读 · 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 · 938 阅读 · 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 · 836 阅读 · 0 评论 -
在php中定义常量时,const与define的区别
【问】在php中定义常量时,const与define的区别? 【答】使用const使得代码简单易读,const本身就是一个语言结构,而define是一个函数。另外const在编译时要比define快很多。(1).const用于类成员变量的定义,一经定义,不可修改。define不可用于类成员变量的定义,可用于全局常量。(2).const可在类中使用,define不能。原创 2016-08-31 23:03:04 · 694 阅读 · 0 评论 -
驼峰命名和下划线命名互转php实现
驼峰命名和下划线命名经常需要互转,下面提供两种php的实现方式.第一种方法效率相对差一些,实现方式如下: //驼峰命名转下划线命名 function toUnderScore($str) { $dstr = preg_replace_callback('/([A-Z]+)/',function($matchs) { ...原创 2019-04-18 14:46:28 · 617 阅读 · 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 · 931 阅读 · 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 · 7155 阅读 · 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 · 28881 阅读 · 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 · 756 阅读 · 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 · 1061 阅读 · 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 · 869 阅读 · 0 评论 -
php trait 冲突的解决 insteadof
冲突的解决如果两个 trait 都插入了一个同名的方法,如果没有明确解决冲突将会产生一个致命错误。为了解决多个 trait 在同一个类中的命名冲突,需要使用 insteadof 操作符来明确指定使用冲突方法中的哪一个。以上方式仅允许排除掉其它方法,as 操作符可以 为某个方法引入别名。 注意,as 操作符不会对方法进行重命名,也不会影响其方法。Example #5 冲突的解决在本例中 T...原创 2019-06-11 11:18:36 · 1124 阅读 · 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 · 1031 阅读 · 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 · 265 阅读 · 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 · 7451 阅读 · 0 评论 -
如何让你的 Laravel API 永远返回 JSON 格式的响应?
当你在编写完全为 API 服务的 Laravel 应用时,你希望所有响应都是 JSON 格式的,而不是例如说授权错误会重定向到 /home 或 /login,最终重定向会变成 InvalidArgumentException: Route [login] is not defined. 的视图。下面这个简单的方案,可以让你的 Laravel 应用优先响应为 JSON 格式。第一步、编写 Bas...原创 2018-09-26 09:53:01 · 2867 阅读 · 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 · 6447 阅读 · 1 评论 -
PHP实现多图片上传
今天在工作中遇到了一个需求:一个表单实现多个上传图片,类似于QQ空间上传照片的模式。即:可以一次性上传多个图片,但是封面图片只有一个。最先,最重要的事,在服务器上对文件进行读写操作的时候,一定要看权限,如果没有权限,全是虾扯蛋,为什么这样说,因为全是泪。首先,前端页面:index.html多个文件上传表单 form{ margin:原创 2017-05-24 09:16:34 · 1950 阅读 · 2 评论 -
轮询和长轮询优缺点分析
轮询:客户端定时向服务器发送Ajax请求,服务器接到请求后马上返回响应信息并关闭连接。优点:后端程序编写比较容易。缺点:请求中有大半是无用,浪费带宽和服务器资源。实例:适于小型应用。长轮询:客户端向服务器发送Ajax请求,服务器接到请求后hold住连接,直到有新消息才返回响应信息并关闭连接,客户端处理完响应信息后再向服务器发送新的请求。优点:在无消息的情况下不会频繁的请求。原创 2017-04-06 09:37:46 · 9082 阅读 · 0 评论 -
2017年PHP程序员未来路在何方
PHP 从诞生到现在已经有20多年历史,从Web时代兴起到移动互联网退潮,互联网领域各种编程语言和技术层出不穷, Node.js 、 GO 、 Python 不断地在挑战 PHP 的地位。这些技术的推动者非常热衷于唱衰 PHP , PHP 语言的未来在哪里?PHP 程序员当如何应对未来的变革?作为老牌的Web后端编程语言,PHP 在全球市场占有率非常高,仅次于 Java ,从各个招聘网站的转载 2017-03-31 16:31:11 · 5588 阅读 · 2 评论 -
PHP面试题part2
1.PHP是什么答案:PHP全称:Hypertext Preprocessor,是一种用来开发动态网站的服务器脚本语言。2.什么是MVC?答案:MVC由Model(模型), View(视图)和Controller(控制器)组成,PHP MVC可以更高效地管理好3个不同层的PHP代码。Model:数据信息存取层。Vi原创 2017-03-31 16:11:41 · 1280 阅读 · 0 评论 -
linux下安装lnmp环境
检查是否安装该程序:which nginx #查看nginx是否存在which php #查看php是否存在which mysql #查看mysql是否存在2yum list nginx #列出nginxyum install nginx #安装nginx#看见{原创 2017-03-29 00:27:13 · 1216 阅读 · 0 评论 -
Laravel中的数据库查询教程
Laravel框架中的DB类让我们可以方便的进行数据库操作,比如常见的query查询:DB::query('SELECT * FROM users');Larvel还提供了类似CI框架中Active Record的Fluent Query Builder : DB::table('user')->where('id','=','1')->get();虽然从操作上转载 2016-12-01 14:52:14 · 2920 阅读 · 0 评论