php
小白旗
小白旗的成长路,终有一天成大旗神
展开
-
mac M1编译php扩展提示mach-o file, but is an incompatible architecture (have (arm64), need (x86_64))错误
换了新mac,有个php项目需要用到pcntl扩展,正常编译安装后,php -m提示。原创 2024-03-21 19:44:19 · 427 阅读 · 0 评论 -
php trim中文标点乱码问题
可直接看最后部分的总结一、背景描述需求中需要对标题末尾的中英文逗号句号过滤,起初用 rtrim($title, ',.,。') 进行过滤,但上线后发现某些情况会有处理后异常的标题,概率很小。列举两条:减脂早餐|丹波面包|奇亚籽酸奶碗|☀️????????????????????????春天真的是我最爱的季节啦!????处理结果:减脂早餐|丹波面包|奇亚籽酸奶碗|☀️????????????????�????春天真的是我最爱的季节啦!�以上两条标题在rtrim后末尾字符被截断。二原创 2021-04-27 13:05:49 · 1320 阅读 · 2 评论 -
解决composer安装依赖时codeload.github.com下载慢问题
最近在阿里云composer安装依赖,有一个依赖装了三天下载不下来了,崩溃。。查了一下是在codeload.github.com下载但,ping了一下网络链接超级不好,丢包严重,解决方式如下:编辑hosts文件sudo vim /etc/hosts添加如下记录codeload.github.com 140.82.114.9保存后刷新DNSsudo nscd -i hosts正常composer执行安装即可...原创 2021-03-21 12:36:41 · 1363 阅读 · 1 评论 -
linux升级php到7.4
安装版本库yum install epel-release yum-utils -y安装源remirepoyum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm配置 PHP 7.4 repository,yum-config-manager --enable remi-php74注意: 可根据自已的版本选择,比如remi-php73或者remi-php72安装升级phpyum update.原创 2021-03-18 21:20:45 · 4178 阅读 · 0 评论 -
PHP扩展包的制作及对Laravel框架的集成
一、什么是php扩展包?我们用于项目增强有两种方式:PHP 原生扩展PHP 原生扩展(PHP Native Extension),我们通常指基于 C/C++ 语言开发的对 PHP 语言的扩展,需要编译安装,比如我们最常使用的 phpredis、GD、MySQL、cURL 扩展等,这里有一个 PHP 的扩展列表。PHP 扩展包PHP 扩展包(PHP Package)或者 PHP 包...原创 2020-05-11 17:47:22 · 742 阅读 · 0 评论 -
laravel faker数据填充详解
安装在laravel中已经自动集成,无需手动安装。如需在其他地方使用,可使用以下命令进行安装。为Faker指定中文支持可通过在 config/app.php 增加如下配置使其支持中文:'faker_locale' => 'zh_CN',注意是下划线 zh_CN,而不是 zh-CN基本用法Faker\Provider\Base 基本$randomDigit = $faker->randomDigit;//生成0-9之间的随机数$randomDigitNotNull =转载 2020-05-11 17:39:48 · 831 阅读 · 0 评论 -
Composer常用命令及版本约束
一、基本命令本文仅围绕基本的 “增、删、改、查” 介绍composer基本命令。“增”install 命令composer 通过 composer.json 文件维护依赖关系,如果需要新增某个包,可以在composer.json文件中手动写入,然后执行指令:composer installrequire 命令我们也可以使用 require 命令快速的安装一个依赖而不需要手动...原创 2020-05-07 10:14:30 · 1147 阅读 · 0 评论 -
正则表达式匹配“不包含某些字符串”的技巧
这篇文章主要介绍了正则表达式匹配不包含某些字符串的技巧,详细分解了应该怎么做和这么做的原因,需要的朋友可以参考下经常我们会遇到想找出不包含某个字符串的文本,程序员最容易想到的是在正则表达式里使用,^(hede)来过滤 hede 字串,但这种写法是错误的。我们可以这样写:[^hede],但这样的正则表达式完全是另外一个意思,它的意思是字符串里不能包含 'h','e','d' 三个但字符。那什么...转载 2020-03-20 18:41:02 · 28496 阅读 · 0 评论 -
新版本chrome浏览器带来的跨域请求cookie丢失问题
A cookie associated with a cross-site resource at http://weibo.com/ was set without the SameSite attribute. It has been blocked, as Chrome now only delivers cookies with cross-site requests if they a...原创 2020-02-24 20:41:52 · 30302 阅读 · 17 评论 -
Laravel中Api路由组使用session解决办法
Laravel中Api路由组使用session解决办法首先, 不建议在laravel的api路由组中使用session维持会话,这不是一个好的做法 。不过我们可能在某些客观条件下,需要使用,今天记录下自己遇到的坑。中间件api路由组需要同时添加两个中间件,缺一不可\App\Http\Middleware\EncryptCookies::class,\Illuminate\Session\...原创 2019-12-17 18:41:20 · 2789 阅读 · 0 评论 -
php使用puppeteer的idle_timeout设置超时时间不生效
今天使用 queryList的puppeteer插件(实际也就是nesk/puphpeteer) ,发现时间超过60秒后就抛异常,使用设置idle_timeout、timeout参数貌似都没有生效$ql->chrome(function ($page,$browser) {...}, [ 'idle_timeout' => 0, //值也尝试过不用0,设置成1000000也无...原创 2019-12-02 16:42:51 · 2658 阅读 · 3 评论 -
php-fpm临时文件路径问题(Sytemd PrivateTmp的坑)
问题描述开发时遇到个问题:使用 shell_exec('echo 123 >> /tmp/test.txt') ,执行成功没有报错,但是并没有写入文件,且由于输出到了 /tmp/test.txt 文件中,所以也没有返回值,一直困扰什么原因,起初怀疑是shell_exec() 的问题,查看php.ini的禁用函数设置,没有问题;查看用户及文件权限,也都没有问题。进而使用 file_p...原创 2019-11-19 12:51:17 · 2161 阅读 · 0 评论 -
php下载文件名中文乱码问题解决
首先,根据 HTTP 1.1 协议规范( RFC 2616 Section 4 ), HTTP 消息格式其实是基于古老的 ARPA INTERNET TEXT MESSAGES ( RFC 822 Section 3 ),根据其规定,消息只能是 ASCII 编码的。 RFC 2616 Section 2.2 又一次强调, TEXT 中若要使用其他字符集,必须使用 RFC 2047 的规则将字符串编...原创 2019-10-15 14:46:22 · 1244 阅读 · 0 评论 -
PHP实现二叉树的深度优先遍历(前序、中序、后序)和广度优先遍历(层次)
前言:深度优先遍历:对每一个可能的分支路径深入到不能再深入为止,而且每个结点只能访问一次。要特别注意的是,二叉树的深度优先遍历比较特殊,可以细分为先序遍历、中序遍历、后序遍历。具体说明如下:前序遍历:根节点->左子树->右子树中序遍历:左子树->根节点->右子树后序遍历:左子树->右子树->根节点广度优先遍历:又叫层次遍历,从上往下对每一层依次访问,...转载 2018-11-06 00:21:36 · 361 阅读 · 0 评论 -
centos7升级版本到php7.2
1、查看PHP版本php -v2、删除旧phpyum remove php*3、安装epelsudo yum install epel-release4、安装remisudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm5、安装yum-utilssudo yum install yum...原创 2018-11-19 10:14:32 · 4462 阅读 · 0 评论 -
php实现判断用户是否在微信内登陆,是否关注公众号
记一次小需求:一个投票活动,在原有的投票接口里(很老的项目。。)增加判断用户是否在微信内登陆,且是否关注公众号,如果用户未关注,则引导用户关注公众号。一、需求要点只对指定对部分活动有效区分微信浏览器访问和外部浏览器访问区分用户是否关注我们的公众号关注可投,不关注引导关注二、大体实现指定部分活动有效最简单对方式,设置一个数组,对id在数组内的逻辑活动才执行新增的逻辑,这样...原创 2018-11-29 18:18:43 · 2079 阅读 · 0 评论 -
一种laravel特有的serviceProvider的加载方式
这里的laravel版本5.5。我们一般的包使用的时候都需要加载一个serviceProvider,提供服务,但是有的包安装的时候,并没有让我们修改config/app.php 增加写入这个serviceProvider。主要看Application.php的registerConfiguredProviders方法,里面有一行:public function registerConfi...原创 2018-12-10 09:49:16 · 2772 阅读 · 0 评论 -
nginx对旧版本路径重定向到新版本路径
今天有个小需求,大致是这样:有一个老版本活动,地址是http://example.com/v1/test/index.php然后有一个新版本的地址http://example.com/v2/test/index.php可以看出,新老版本地址,除了uri中间的v1和v2有区别外,其他路径信息全都一致。因为一些投放位并不能及时更新,所以要对老活动的地址做重定向。场景如上,解决方式初步...原创 2019-01-25 19:51:05 · 1083 阅读 · 0 评论 -
PHP超级全局变量、魔术变量和魔术函数
PHP在设计的时候已经预定义了9个超级全局变量、8个魔术变量和13魔术函数,这些变量和函数可以在脚本的任何地方不用声明就可以使用。 在PHP开发会频繁的使用这些变量和函数,这些变量和函数可以方便的帮我们解决很多问题。下面详细的讲解下PHP中的超级全局变量、魔术变量和魔术函数。PHP超级全局变量(9个) $GLOBALS 储存全局作用域中的变量 $_SERVER 获取服务器相...转载 2018-11-06 00:14:53 · 179 阅读 · 0 评论 -
Windows下配置Yaf环境
一、下载Yaf扩展:http://pecl.php.net/package/yaf:二、根据phpinfo()中的信息,选择对应版本的Yaf扩展: yaf有TS和NTS版本,先查看下自己php的版本,用phpinfo()查看下thread safety项,如果为enabled的话,选择TS版本,反之选择NTS版本三、将压缩包中的php_yaf.dll文件放到php/ext中...转载 2018-09-26 11:12:51 · 1132 阅读 · 0 评论 -
laravel获取不到session的三种解决办法
问题:引用第三方类库时,使用全局函数session()可以保存session,但是获取不到1、路由置于 web 中间件下,修改app/Http/Kernel.php文件,如下protected $middlewareGroups = [ //中间件web 'web' => [ \App\Http\Middleware\Enc...转载 2018-09-16 12:33:42 · 5161 阅读 · 0 评论 -
Laravel 三种中间件作用讲解
昨天在开发过程中,需要使用到中间件的技术,之前都只是简单的认为要增加中间件就往middleware里添加中间件即可。本着周末的时间,就仔细研究了下 $middleware $middlewareGroup $routeMiddleware三个属性,到底是怎么样用的,通过查阅文档和网上资料,可算是搞明白了这三个属性是怎么用的和该怎么用。$middleware属性:这个属性称为全局中间件,为什...转载 2018-09-16 12:28:39 · 2163 阅读 · 1 评论 -
正则匹配中文英文字符、数据及标点
/^([\p{Han}\p{P}A-Za-z0-9])*$/u其中\p{Han}表示utf-8编码中的所有中文字符,\p{P}表示中英文标点,A-Z表示大写字母,a-z表示小写英文字母,0-9表示数字,*表示>=0, /u 表示按unicode(utf-8)匹配(主要针对多字节比如汉字)希望对大家有帮助,喜欢的请关注我。转载请注明出处更多信息请参考:regul...原创 2018-09-05 18:53:16 · 22465 阅读 · 3 评论 -
理解laravel中 Eloquent 关联中的多态关联(Polymorphic Relations)
简介你可能会这样设计你的博客系统:一张文章表(posts)和一张评论表(comments)。posts id - integer title - string body - textcomments id - integer body - text post_id - integer突然有一天,你开始录播视频教程了,那么就会多一个张...转载 2018-08-24 23:40:09 · 2058 阅读 · 0 评论 -
PHP中关键字static与self的使用区别
php中静态关键字有static和self,那么两者的区别是什么呢?首先来看一下self的情况: <?php class A { public static function who() { echo A::class . '<br/>'; } public static function test() { se...原创 2018-08-27 13:23:55 · 320 阅读 · 0 评论 -
PhpStorm 汉化包
JetBrains 系列软件汉化包关键字: Android Studio 3.0-3.1.3 汉化包 CLion 2018.1-2018.2 汉化包 GoLand 2017.3.2-2018.2 汉化包 IntelliJ IDEA 2017.3-2018.2 汉化包 PhpStorm 2017.3-2018.2 汉化包 PyCharm 2017.3-2018.2 汉化包 Ruby...转载 2018-08-19 22:00:24 · 7616 阅读 · 0 评论 -
centos下安装php7.2
1.检查当前安装的PHP包yum list installed | grep php 如果有安装的PHP包,先删除他们yum remove php.x86_64 php-cli.x86_64 php-common.x86_64 php-gd.x86_64 php-ldap.x86_64 php-mbstring.x86_64 php-mcrypt.x86_64 php-mysql...原创 2018-08-26 19:30:46 · 2220 阅读 · 0 评论 -
MySQL锁机制和PHP锁机制
正文内容模拟准备--如何模拟高并发访问一个脚本:apache安装文件的bin/ab.exe可以模拟并发量 -c 模拟多少并发量 -n 一共请求多少次 http://请求的脚本例如:cmd: apache安装路径/bin/ab.exe -c 10 -n 10 http://web.test.com/test.php MYSQL中的锁:语法 :LOCK TABLE 表名1 ...转载 2018-08-13 11:16:00 · 2422 阅读 · 0 评论 -
centos下php安装mongodb扩展及mogodb-server/client安装
安装php的mongodb扩展安装sudo pecl install mongodbpecl是php自带命令,全局如果找不到,请到php的安装目录bin下查看。修改php.ini文件;#我们需要在php.ini文件中引入扩展,php.ini文件在php安装目录下的etc文件夹中extension=mongodb.so通过pecl安装的扩展,.so文件会在php扩展目...原创 2019-02-14 11:02:12 · 768 阅读 · 0 评论 -
将$_FILES的数据直接构造curlFile对象再次向第三方请求
问题描述curlFile对象及curl_file_create($filename, $mimetype, $postname),均接收3个参数,前端post来到文件数据,通过$_FILES或者各框架中的Request类中接收的文件数据,可以通过临时文件名构造curlFile对象,从而在curl中直接再将数据post到第三方的存储服务接口。即curlFile对象参数中的filename可以是文件...原创 2019-02-20 19:11:43 · 1470 阅读 · 0 评论 -
recv() failed (104: Connection reset by peer) while reading response header from upstream问题的解决
背景recv() failed (104: Connection reset by peer) while reading response header from upstream问题很显然是 nginx 与php-fpm 间的通信出现了问题,通常是php-fpm由于超时等原因终止导致nginx未收到有效回应。我这次写这个问题比较局限,是在phalcon框架下发现偶发性的异常问题,且是在线上...原创 2019-03-23 20:07:43 · 96936 阅读 · 7 评论 -
phpstudy下安装laravel
phpstudylaravel5.2nginx公司用的laravel框架,安装了vagrant、homestead,而我自己的电脑只是简单的用phpstudy。之前用composer装的laravel5能正常访问到根目录,但是路由始终失效,我曾怀疑是因为laravel框架在phpstudy里不能正确路由,但后来熟悉了之后感觉二者之间并没有什么隔阂。并且这个博文证实确实没影响原创 2017-06-29 00:20:54 · 10645 阅读 · 0 评论 -
PHP下载文件名中文乱码解决方法
通过把Content-Type设置为application/octet-stream,可以把动态生成的内容当作文件来下载,相信这个大家都会。那么用Content-Disposition设置下载的文件名,这个也有不少人知道吧。基本上,下载程序都是这么写的:<?php $filename = "document.txt"; header('Content-Type: application...原创 2019-09-26 10:24:22 · 2972 阅读 · 0 评论 -
关于php中Undefined index报错不是notice而是error的问题
众所周知,在php中,如果调用一个不存在的数组的key,会有notice提示,如果开启了display_errors => On,则会输出该notice提示notice: undefined index: --------然而,印象中偶尔会直接抛异常,阻断程序的运行 ErrorException : Undefined index: category_template那么什么时...原创 2019-08-30 17:48:20 · 3614 阅读 · 1 评论 -
php-fpm sock文件权限设置
在编译php-fpm时,若没有指定fpm用户,在配置文件中也没有指定用户,则sock文件会由root(启动php-fpm的用户)创建,其权限是srw-rw----而nginx一般由nginx用户启动,会导致无法读取sock文件,造成nginx返回502错误。nginx日志会记录错误如下:[crit] 1663#0: *40 connect() to unix:/dev/shm/php-fpm...原创 2019-08-09 16:00:47 · 3080 阅读 · 1 评论 -
Mysql5.7和laravel5.7的Json字段类型问题
当我使用 laravel的Eloquent模型 查询含有json类型字段的数据时,有报错如下:SQLSTATE[HY000]: General error: 2036这个是因为json字段需要php的mysqlnd扩展来支持,而不是使用默认的mysql扩展我按照以下步骤解决了这个问题:sudo yum remove php70w-mysqlsudo yum install php70w...原创 2019-07-30 10:54:14 · 992 阅读 · 0 评论 -
Laravel的groupBy()报错问题处理
Laravel 5.7Mysql 5.7mysql报错如下:SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column which is not functio...原创 2019-07-30 10:48:25 · 2096 阅读 · 0 评论 -
让页面中的http请求转为https请求
由于项目业务升级,网站升级https协议。在 HTTPS 承载的页面上不允许出现 http 请求,一旦出现就是提示或报错:Mixed Content: The page at 'https://www.example.com' was loaded over HTTPS, but requested an insecure image ‘http://static.example.com/t...原创 2019-07-05 19:11:22 · 15449 阅读 · 3 评论 -
轻论坛StartBBS、YouBBS、Xiuno对比
轻论坛StartBBS、YouBBS、Xiuno对比一提到论坛程序,绝大部分都会想到Discuz、PHPWind,但是这些论坛程序功能比较强大,导致后台也很复杂,维护起来不容易。看到V2EX,觉得这个挺不错的,发现有不少类似V2EX的程序可用,试用了几款,把经验和大家分享一下。StartBBS官网:www.startbbs.comStartBBS是一个基于 PHP+My...转载 2017-04-22 18:28:21 · 2880 阅读 · 2 评论 -
laravel将请求分派到另一个路由
参考laravel手册 https://laravel.com/api/5.7/Illuminate/Routing/Router.html最近有个业务场景是这样://在管理模块中,要根据模块名动态跳转到该模块的controller来执行configs方法//有类似如下两条路由Route::get('manage/{module}', 'Common\\ManageController...原创 2019-06-25 13:37:34 · 1528 阅读 · 1 评论