PHP
陶太郎
对写出来的代码永远不满足
展开
-
Mysql 利用二进制灵活扩展角色
func (p Bit) Format() []int { var s []int i := 1 num := 2 for int(p) > num { if num&int(p) > 0 { s = append(s, i) } num <<= 1 i++ } return s}将十进制转换为[]int权限数组理论上支持一个my.原创 2021-04-08 19:48:11 · 141 阅读 · 0 评论 -
laravel 定时任务 日志权限问题
问题:crontab 默认由root用户执行,可能会创建出root才可写的日志文件,造成业务写不进日志导致不可用。解决:方式一:su -s /bin/bash -c "/usr/local/php/bin/php workdir/artisan schedule:run > /dev/null 2>&1" www方式二:更改logging.php'daily' => [ 'driver' => 'daily', 'path' => s原创 2021-01-14 10:43:38 · 994 阅读 · 0 评论 -
Laravel Request 生命周期
原创 2021-01-13 17:13:13 · 153 阅读 · 0 评论 -
结合PHP 看Redis 字符串 浅析
一 实现原理1.1 c语言字符串以空字符串结尾的字符数组,比如hello在C语言中,经过一系列算法分配内存后,再产生出图中结构代表字符串'hello!~'。使用长度为N+1的字符数组来表示字符串,最后总加一个'\0'代表结尾。1.2 php字符串底层为C,结构如代码所示:1.3 redis字符串和php的字符串有类似之处,redis作者封装了一个名为...原创 2019-11-28 15:27:18 · 199 阅读 · 0 评论 -
关于Composer你需要知道的一些知识
思考当你有一个好的idea,写了一个自我感觉还不错的工具或者组件,并迫不及待的想让别人去试试的时候,你会怎么做? 把代码贴在博客 需要花时间复制粘贴,阅读代码 把代码发布在github 还是需要花时间down\clone,不能直接组件化加载 把代码发布在composer ✔️ ...原创 2019-11-05 15:24:34 · 1047 阅读 · 0 评论 -
用 PHP 来刷leetCode 之 最接近的三数之和
给定一个包括n个整数的数组nums和 一个目标值target。找出nums中的三个整数,使得它们的和与target最接近。返回这三个数的和。假定每组输入只存在唯一答案。例如,给定数组 nums = [-1,2,1,-4], 和 target = 1.与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2)先排序, 然后遍历, 然后内部使用...原创 2019-03-19 16:53:18 · 847 阅读 · 0 评论 -
用 PHP 来刷leetCode 之 电话号码的字母组合
给定一个仅包含数字2-9的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:"23"输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].说明:尽管上面的答案是按字典序排列的,但是你可以任意选择答案输出的顺序。/** * @...原创 2019-03-19 18:43:04 · 232 阅读 · 1 评论 -
用 PHP 来刷leetCode 之 四数之和
给定一个包含n个整数的数组nums和一个目标值target,判断nums中是否存在四个元素a,b,c和d,使得a+b+c+d的值与target相等?找出所有满足条件且不重复的四元组。注意:答案中不可以包含重复的四元组。示例:给定数组 nums = [1, 0, -1, 0, -2, 2],和 target = 0。满足要求的四元组集合...原创 2019-03-20 16:43:35 · 319 阅读 · 0 评论 -
用 PHP 来刷leetCode 之 有效的括号
给定一个只包括'(',')','{','}','[',']'的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例2:输入: "()[]{}"输出: true示例3:输入: "(]"输出: false...原创 2019-03-08 10:33:23 · 365 阅读 · 0 评论 -
用 PHP 来刷leetCode 之 最长公共前缀
编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串""。示例1:输入: ["flower","flow","flight"]输出: "fl"示例2:输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀。说明:所有输入只包含小写字母a-z。/** * @param S...原创 2019-03-18 17:19:55 · 387 阅读 · 0 评论 -
用 PHP 来刷leetCode 之 三数之和
给定一个包含n个整数的数组nums,判断nums中是否存在三个元素a,b,c ,使得a + b + c =0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1], [-1, -1, 2]]/** * @...原创 2019-03-18 18:11:08 · 886 阅读 · 0 评论 -
用 PHP 来刷leetCode 之 括号生成
给出n代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。例如,给出n=3,生成结果为:[ "((()))", "(()())", "(())()", "()(())", "()()()"]class Solution { public $arr=[]; /** * @param Integ...原创 2019-03-27 10:37:09 · 220 阅读 · 0 评论 -
swoole:mac下的测试工具
安装socket工具sokit 安装saka仓库 brew tap rangaofei/saka 然后安装软件 brew install sokit 因为要依赖qt,所以安装会稍微慢一点,安装成功后执行命令即可: 在终端输入sokit 可以多开 同时扮演多个client ...原创 2019-06-10 14:14:49 · 408 阅读 · 0 评论 -
docker 快速搭建 swoft 开发环境
首先确保有gitgit clone https://github.com/swoft-cloud/swoft.git在当前目录下 添加以下文件vim docker-compose.ymlversion: '3'services: swoft: container_name: swoft image: swoft/swoft ports: ...原创 2019-06-26 13:12:49 · 1428 阅读 · 0 评论 -
用 PHP 来刷leetCode 之 Z 字形变换
题目:将一个给定字符串根据给定的行数,以从上往下、从左到右进行Z 字形排列。比如输入字符串为"LEETCODEISHIRING"行数为 3 时,排列如下:L C I RE T O E S I I GE D H N之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"LCIRETOESIIGEDHN"。请你实现这个将字符串进行指定行数...原创 2019-03-04 18:05:02 · 604 阅读 · 0 评论 -
用 PHP 来刷leetCode 之 整数转罗马数字
罗马数字包含以下七种字符:I,V,X,L,C,D和M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做II,即为两个并列的 1...原创 2019-03-05 16:40:10 · 333 阅读 · 0 评论 -
用 PHP 来刷leetCode 之 盛最多水的容器
给定n个非负整数a1,a2,...,an,每个数代表坐标中的一个点(i,ai) 。在坐标内画n条垂直线,垂直线i的两个端点分别为(i,ai) 和 (i, 0)。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且n的值至少为 2。图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(...原创 2019-03-05 15:59:28 · 369 阅读 · 0 评论 -
利用array_diff去除两个数组重复值
业务场景,得到$e和$f两个字符串. 对应的分别是之前的数据和更换的数据,重复的我们就不进行更改 删除之前的,添加新来的 被注释的是正常逻辑敲出来的,不过真不想用循环啊.还是自带函数底层C写的运行速度快$e = 22,33,44;$f = 22,31,54; $e = explode(',',$e); $f = explode(',',$f);原创 2017-11-30 10:44:44 · 922 阅读 · 0 评论 -
MAMP 安装 php pcntl扩展
mamp pro 集成环境 安装pcntl扩展原创 2017-11-16 13:35:45 · 1589 阅读 · 0 评论 -
linux 服务器 从零部署
操作系统:CentOS 7.3 64位安装 NginxPHP-FPM 依赖于 Nginx 进行请求的派发与响应,并且一些静态文件我们也可以直接通过 Nginx 代理,提高性能。其中第一步就是安装 Nginx。通过 SSH 连接上云服务器,直接使用包管理工具 yum 安装 Nginx 即可:yum -y install nginx原创 2018-01-04 18:25:23 · 487 阅读 · 0 评论 -
简单明了 PHP实现命令行可执行脚本
php在cli模式下常用得到参数的方法1.$argv,$argc2.STDOUT和STDIN变量3.getopt方法实际情况中,我一般用第一种就可以满足大部分需求其余两种各位自行度娘1.创建test.phpprint_r($argv);?>123在命令行执行php test.php controllerName actionName re原创 2018-03-21 10:37:22 · 4566 阅读 · 0 评论 -
定时执行,如何判断之前的脚本是否跑完
在PHP开发中,有时我们有这样一种需求一个脚本 定时每两分钟执行一次 可是在下一个脚本循环执行时 上面一个脚本还没跑完 我们就应该取消当前循环那么怎么做呢 方法很多 我这里提供一种我认为比较优雅的这是一个test.php<?phpecho 111;sleep(1200);这是一个shell脚本test.sh#!/bin/bashprocess=`ps -ef|grep '/Librar...原创 2018-04-04 12:51:31 · 2041 阅读 · 0 评论 -
phpexcel 在safari浏览器下载 带.html问题
代码码完之后,在chrome浏览器下载没有问题,但是在safari浏览器下载总是带有.html 在http协议这块 改成下面就可以解决 header("Pragma: public"); header("Expires: 0"); header("Cache-Control:must-revalidate, post-check=0, pre...原创 2018-10-11 10:43:08 · 1383 阅读 · 0 评论 -
redis demo
下载http://www.oschina.net/p/redis转载自[http://www.cnblogs.com/imxiu/p/3554805.html]解压后里面有:lib 源文件 、examples 例子、test测试将lib目录拷贝到你的项目中,就可以开始你的predis操作了。//使用autoload加载相关库,这边重点就是为了require $file;spl_au...转载 2018-10-12 18:21:20 · 211 阅读 · 0 评论 -
docker 纯净ubuntu php7.1 swoole扩展
先安装ubuntu镜像docker search ubuntudocker run -dit -p 8099:80 --name my_swoole ubuntudocker ps -a7fd87532e3e8 是该容器的id 名字就是上面的my_swoole 下面我们进入容器 其实和ubuntu没两样 docker exec -it my_swoole /...原创 2019-01-24 11:12:20 · 585 阅读 · 0 评论 -
php 运行原理 cgi fastcgi php-cgi和php-fpm 联系区别
最近项目中本地测试环境遇到了windows环境下的nginx使用file_get_contents/curl访问php文件导致的阻塞问题,一直在找解决的方案,这个问题研究了三天终于找到了解决方案,特别因为这个我也对php的运行原理产生了兴趣,所以这里对此进行一定程度的记录,可能会有错漏的地方,欢迎指正。要了解php的运行原理,首先要了解下面几个概念:CGI:CGI的英文是(COMMON...转载 2019-01-25 23:44:10 · 210 阅读 · 0 评论 -
用 PHP 来刷leetCode 之 无重复字符 最长子串
给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。示例1:输入: "abcabcbb"输出: 3解释: 因为无重复字符的最长子串是"abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是"b",所以其长度为 1。示例 3:输入: "pwwkew"输出: 3解释: 因为无重复字符的最长子串是"wke",所原创 2019-02-28 18:08:47 · 905 阅读 · 1 评论 -
用 PHP 来刷leetCode 之 整数反转
题目:方法一:反转字符串class Solution { /** * @param Integer $x * @return Integer */ function reverse($x) { $f = $x<0?true:false; $x = $f?abs($x):$x; $x ...原创 2019-03-01 10:16:23 · 516 阅读 · 0 评论 -
用 PHP 来刷leetCode 之 最长回文子串
给定一个字符串s,找到s中最长的回文子串。你可以假设s的最大长度为 1000。示例 1:输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例 2:输入: "cbbd"输出: "bb"方法一:暴力法应该是第一眼就想出来的方法了 逻辑也符合一般思想(最简单- -)function isPalindrome($str){...原创 2019-03-01 17:12:41 · 400 阅读 · 0 评论 -
用 PHP 来刷leetCode 之 回文数
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文...原创 2019-03-05 11:15:01 · 449 阅读 · 0 评论