php
文章平均质量分 62
HoeWang
人在地球码到失联。
展开
-
PHP8新特性
文章目录最人性特性:命名参数、联合类型、mixed类型联合类型最具贡献的特性:JIT构造器属性提升nullsafe运算符str_contains()、str_starts_with()和str_ends_with()函数最具潜力的特性:注解、Match表达式、WeakMap注解Match表达式WeakMap其它特性traits 中的抽象方法改进最人性特性:命名参数、联合类型、mixed类型这几个新特性让PHP在强类型方面进一步完善,而且对PHPDoc的注释依赖越来越弱,代码即文档的好处是开发者最头疼的事原创 2021-03-23 14:07:19 · 634 阅读 · 2 评论 -
laravel使用redis的分布式锁
laravel的缓存类的store的redis实现,位于命名空间Illuminate\Cache\RedisStore其中实现了LockProvider,可获取锁实例,锁实例为Illuminate\Cache\RedisLock类的实例,RedisLock类是Illuminate\Cache\Lock抽象类的实现调用方法get()获取锁时(RedisLock->get()),首先调用$this->acquire(),具体代码为public function acquire() {转载 2021-01-19 17:46:57 · 810 阅读 · 0 评论 -
搭建jenkins并部署php项目
搭建jenkins1.wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo 2.rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key 3.yum install jenkins4.yum install java-1.8.0-openjdk配置vim /etc/sysconfig/jenkins J原创 2020-12-29 15:56:11 · 481 阅读 · 0 评论 -
最新制作composer包
1.github创建仓库github创建仓库(生成一个readme文件)github添加ssh秘钥本地环境生成一下秘钥 git config --global user.name "HoeWang" git config --global user.email "37407409@qq.com" ssh-keygen -t rsa -C “37407409@qq.com”然后将id_rsa.pub文件里面的秘钥复制到github的设置ssh当中本地git clon原创 2020-12-11 13:49:23 · 191 阅读 · 1 评论 -
php高精度计算的封装介绍
文章目录概要php浮点数精度计算的坑原因方案php提供的高精度函数库bcBC的主要相关函数可能为缺陷为何需要封装?代码示例关于舍去以及四舍五入如果要BC支持四舍五入关于封装概要php浮点数精度计算的坑$a = 2586;$b = 2585.98;var_dump($a-$b);期望的结果是:float(0.02)实际结果:float(0.019999999999982)原因小数的二进制表示有时是不可能精确的。其实道理很简单,十进制系统中能不能准确表示出1/3呢?同样二进制系统也无法原创 2020-09-28 13:47:07 · 479 阅读 · 0 评论 -
PHP代码优化与总结
PHP语法调优与坑author:hoewang文章目录PHP语法调优与坑isset千百倍优于in_array熟练使用continue与breakwhile里面断点问题循环处理foreach使用&引用in_array的自作聪明模式关于array_column强大用法array_merge的坑短路代码灵活使用list直接取方法返回数组的变量关于检测字符串存在array_unique问题a...原创 2020-03-19 19:58:30 · 336 阅读 · 1 评论 -
php开发常用指令总结
配置git环境配置: git config --global user.name "HoeWang" git config --global user.email "37407409@qq.com" $ ssh-keygen --t rsa -C “37407409@qq.com” Github那边:settings->ssh ke...原创 2018-09-03 14:58:40 · 525 阅读 · 0 评论 -
php模式设计之 观察者模式
这是我写的《php模式设计》的第五篇。前面的四篇在不断学习不断加深认识,到了今天再看观察者模式,觉得非常容易理解。这也许就是我们积少成多的结果吧。希望还是能够不断进步。 开篇还是从名字说起,“观察者模式”的观察者三个字信息量很大。玩过很多网络游戏的童鞋们应该知道,即便是斗地主,除了玩家,还有一个角色叫“观察者"。在我们今天他谈论的模式设计中,观察者也是如此。首先,要有一个“主题”。只有有了一个...转载 2018-07-07 11:52:04 · 305 阅读 · 0 评论 -
php模式设计之 适配器模式
在这个有没有对象都要高呼“面向对象”的年代,掌握面向对象会给我们带来意想不到的方便。学编程的小伙伴从开始能写几行代码实现简单功能到后来懂得将一些重复的操作组合起来形成一个“函数”,再到后来将“函数”和属性组合起来形成一个“类”。一步步走来,我们在考虑着机器运行代码效率的提高的同时也在考虑减轻程序员的工作量。 那么我们今天讲到的适配器模型更着重考虑的是什么呢?是程序员工作量。 什么时候会用到适配器...转载 2018-07-07 11:51:32 · 231 阅读 · 0 评论 -
php模式设计之 注册树模式
在前两篇单例模式和工厂模式后,终于迎来了最后一个基础的设计模式--注册树模式。 什么是注册树模式? 注册树模式当然也叫注册模式,注册器模式。之所以我在这里矫情一下它的名称,是因为我感觉注册树这个名称更容易让人理解。像前两篇一样,我们这篇依旧是从名字入手。注册树模式通过将对象实例注册到一棵全局的对象树上,需要的时候从对象树上采摘的模式设计方法。 这让我想起了小时候买糖葫芦,卖糖葫芦的将糖葫芦...转载 2018-07-07 11:50:42 · 227 阅读 · 0 评论 -
字符串处理(包括正则生成工具)
例如:我们要获取:EE20181017143211468888$result = '积分商城扣除积分 1订单号: EE20181017143211468888 OPENID: sns_wa_o_L7W5R4HWpw1kY5DXjzsdu9eCSc';$bb = strpos($result,"订单号: ",0);$cc = strpos($result," OPENID",0);$dd...原创 2018-10-17 15:22:17 · 1903 阅读 · 0 评论 -
PHP浮点数计算bc函数使用
/** * 两个高精度数比较 * * @access global * @param float $left * @param float $right * @param int $scale 精确到的小数点位数 * * @return int $left==$right 返回 0 | $left<$right 返回 -1 | $left>$rig...原创 2018-12-28 14:40:11 · 315 阅读 · 1 评论 -
2018年小米高级 PHP 工程师面试题(模拟考试卷)
1、通过哪一个函数,可以把错误转换为异常处理?A:set_error_handlerB:error_reportingC:error2exceptionD:catch正确答案:A 答案分析:set_error_handler() 可指定一个回调函数,错误发生时,会自动通过指定的回调函数处理。在回调函数中抛出新的异常即可。 2、下列哪个shell函数的描述是正确的?A:...原创 2019-01-10 16:03:52 · 810 阅读 · 1 评论 -
session和cookie的联系
1.区别 session存在于服务器,以文件的形式,安全,量大 cookie是基于浏览器(客户端)的,相对不安全,大小限制,2.session_start()的时候做了什么(A区间:生成) a.服务器生成了对应的session_id; b.服务器生成了对应session_id对应的文件:文件内存储此session_id对应的用户的设置的变量等信息...原创 2019-01-11 10:50:44 · 505 阅读 · 1 评论 -
一键导出CSV文件
/** * 导出CSV * @param array $data [description] * @param array $headlist [description] * @param [type] $fileName [description] * @return [type] [description] */function write...原创 2019-01-23 15:22:08 · 670 阅读 · 0 评论 -
php的set_error_handler的错误记录回调
<?phpset_error_handler(function($errno, $errstr, $errfile, $errline){ // var_dump($errno); //错误级别 // var_dump($errstr); //错误信息 // var_dump($errfile); //错误文件路径 // var_dump($errline)...原创 2019-02-15 17:18:27 · 434 阅读 · 0 评论 -
php相关算法题目(转)
1、一群猴子排成一圈,按1,2,…,n依次编号。然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数,再数到第m只,在把它踢出去…,如此不停的进行下去,直到最后只剩下一只猴子为止,那只猴子就叫做大王。要求编程模拟此过程,输入m、n, 输出最后那个大王的编号。function king($n, $m){ $monkeys = range(1, $n); //创建...转载 2019-02-19 15:47:53 · 977 阅读 · 0 评论 -
php基础递归
public function getViewSonIds($viewIds = [], $isp_ids = []) { static $allIds = []; $viewModel = ViewModel::query(); if (empty($viewIds)) { return []; ...原创 2019-03-29 11:03:17 · 211 阅读 · 0 评论 -
Xunsearch迅搜项目实战经验
在这里我们使用的是SDK以及一台xunsearch服务器,意思是不在同一服务器上的。xunsearch服务器和sdk服务器。1.部署xunsearch服务器,网上还是有文档的 第一步 下载解压wget http://www.xunsearch.com/download/xunsearch-full-latest.tar.bz2tar -xjf xunsearch...原创 2018-03-16 16:32:43 · 1411 阅读 · 1 评论 -
php模式设计之 单例模式
模式设计是什么?初学者一开始会被这高大上的名称给唬住。而对于有丰富编程经验的老鸟来说,模式设计又是无处不在。很多接触的框架就是基于各种模式设计形成的。 简单说,在写代码的过程中一开始往往接触的是面向过程的,简单的基础的编程。这个时候我们往往追求的是代码能够实现某项功能就万事大吉。管他代码多么冗余,管他代码是否可重用,管他效率如何,能实现功能就好。但是,真正应用于实际的,更被大家采纳的是那些高效的,...转载 2018-07-07 11:50:07 · 218 阅读 · 0 评论 -
php模式设计之 工厂模式
承接上篇php模式设计之 单例模式,(虽然好像关系不大)。今天讲述第二种基础的模式设计——工厂模式。 那么何为工厂模式? 从名字来看,似乎看不出什么端倪。工厂模式,和生产有关?还是和生产流程有关?难道还和工厂领导有关?和领导秘书有关?秘书... 好了不卖关子了,所谓工厂模式还真和生产有关。生产什么呢?生产出来的是一个实例对象。通过什么设备生产?通过一个工厂类生产。怎么生产呢?工厂类调用...转载 2018-07-07 11:49:18 · 223 阅读 · 0 评论 -
流程控制
流程控制 1.概述 任何PHP脚本都是由语句组成的。 此外,还可以用花括号将一组语句封装成一个语句组,语句组本身可以当作是一行语句 2.在PHP中有三种基本的程序结构: 顺序结构 分支结构 循环结构顺序结构 在程序结构中,最基本的就是顺序结构,表示程序会自上而下的顺序执行。流程控制之分支结构: 1. 单向分支 ...原创 2018-03-03 17:58:35 · 229 阅读 · 0 评论 -
php数据类型以及运算
什么是PHP? 拍黄片。 HTML:HyperText Mark-up Language 超文本标记语言 PHP(PHP:Hypertext Preprocessor )超文本预处理器,是一种运行在服务器端的脚本语言,尤其适合web开发。PHP能干什么? 收集表单数据 生成动态网页 收发cookies 跨平台运行 输出图像 文件处理 处理...原创 2018-03-03 17:57:46 · 592 阅读 · 0 评论 -
php开发常用指令集合
配置git环境配置: git config –global user.name "Hoewang" git config -global user.email "37407409@qq.com" $ ssh-keygen -t rsa -C “37407409@qq.com” Github那边:settings->ssh keys->输入id_rsa.pub文件里面的内容(通...原创 2018-03-03 17:50:46 · 855 阅读 · 0 评论 -
php的基础分页类
class Page{public $limit; //存储limit条件public $allPage; //存储总页数public $current; //存储当前页public $total; //存储总条数public function __construct($total, $num = 5){//计算总页数$this->allPage = ce...原创 2018-02-24 14:51:12 · 209 阅读 · 0 评论 -
Xunsearch的使用总结
安装# xunSearch 讯搜 ## 1、安装 1.下载并解压 地址:wget http://www.xunsearch.com/download/xunsearch-full-latest.tar.bz2 tar-xjf xunsearch-full-latest.tar.bz2 2.执行安装脚本 ...原创 2018-03-08 19:19:52 · 1441 阅读 · 0 评论 -
php的简单文件上传整理
##文件上传1.在表单头要写入enctype="multipart/form-data";2.最好定义一个隐藏的hidden,name="MAX_FILE_SIZE"value来定义大小##使用到的函数1.is_uploaded_file用来判定文件是否是通过HTTP-HOST上传的,返回bool值2.move_uploaded_file('临时文件路径','目标文件路径')其中临时文件路径是指$...原创 2018-02-26 20:56:32 · 368 阅读 · 0 评论 -
php函数
函数是什么: 函数(function)是一段完成指定任务的已命名代码块。函数可以遵照给它的一组值或参数完成特定的任务,并且可能返回一个值。(比如循环输出10行10列的表格,或者N行N列的表格)PHP中函数分为两种: 1、自定义函数 (比如循环输出10行10列的表格,或者N行N列的表格) 2、系统函数 (比如var_dump()、round()、floo...原创 2018-03-03 17:59:15 · 247 阅读 · 0 评论 -
php系统函数
系统函数 数组相关的函数: 数组的键/值操作: 1.array_values($arr) 返回数组中所有的值并给其建立数字索引 2.array_keys($arr[, '值'[, true]]) 返回数组中所有的键名 给'值'表示拿出该值的键 给'true'表示值用===...原创 2018-03-03 17:59:54 · 338 阅读 · 0 评论 -
php报错和时间
错误处理 错误的分类 语法错误 这种错误最常见,但也最容易搞定;一旦出现,一行代码都不执行 运行时错误 在页面上给你报出来,有的会终止代码执行,有的不会 逻辑错误 这种错误最麻烦 错误的级别 notice 提示级别,不会影响后续代码...原创 2018-03-03 18:00:38 · 283 阅读 · 0 评论 -
SDK以及部署的SDK的思路
SDK与项目部署思路:1. SDKa) 能够实现单例化,要从config中进行生成远程api相关的验证数据以及密匙写入b) 根据第1个大参数进行确认调用zhouyiapi的哪个controller层c) 根据第2个大参数进行确认调用zhouyiapi的C层当中的哪个方法d) 根据第3个大参数进行确认调用zhouyiapi的c层中某个方法的形式参数的...原创 2018-07-05 17:59:12 · 1466 阅读 · 0 评论 -
lnmp一键安装后的配置改动建议
1.进行防跨目录设置的改动2.php-fpm.conf的改动避免502错误其实就是php-fpm.conf中的监听有问题,一键安装包的listen默认为:/tmp/php-cgi.sock但是我们的项目中的fastcgi_pass 127.0.0.1:9000;vhost的文件有这个定义两个是不一样的,所以引发了502错误事实上只需要把两个改为一致就好了,我这边是都改为了127.0.0.1:90...原创 2018-06-08 15:57:08 · 1109 阅读 · 0 评论 -
关于php下开发的跨域问题总结(全)
跨域问题介绍: 在A网站中,我们希望使用Ajax来获得B网站中的特定内容。如果A网站与B网站不在同一个域中,那么就出现了跨域访问问题。你可以理解为两个域名之间不能跨过域名来发送请求或者请求数据,否则就是不安全的。跨域访问违反了同源策略,同源策略的详细信息可以点击如下链接:Same-origin_policy; 总而言之,同源策略规定,浏览器的ajax只能访问跟它的HTML页面同源(...原创 2018-06-04 16:44:01 · 549 阅读 · 0 评论 -
php几大缓存技术
1、全页面静态化缓存也就是将页面全部生成html静态页面,用户访问时直接访问的静态页面,而不会去走php服务器解析的流程。此种方式,在CMS系统中比较常见,比如dedecms;一种比较常用的实现方式是用输出缓存:Ob_start()******要运行的代码*******$content = Ob_get_contents();****将缓存内容写入html文件*****Ob_end_clean()...转载 2018-05-15 10:49:54 · 1788 阅读 · 0 评论 -
PHP网络爬虫之CURL学习
PHP的CURLphp的curl可以实现模拟http的各种请求,这也是php做网络爬虫的基础,也多用于接口api的调用。这个时候有人就要发问了:为什么你特么不用file_get_contents?curl的性能比它好,而且可以完成更多复杂的操作,不仅仅只是获取页面数据。下面先分别介绍一些常用的函数。curl_init 初始化一个curl对话curl_setopt 设置curl参数,即传输选项cur...转载 2018-03-14 11:50:49 · 445 阅读 · 0 评论 -
关于跨模块拿取数据的思路AJAX实现
最近项目中有两个项目中,B项目需要用到A项目中的动态数据,研究了挺久的,cookie并不是同一个,所以实现上有所问题,而且项目A 的这个功能数据基类,会被许多类继承 这时候就想到了用ajax,本人比较喜欢用的是jq中的ajax的抓取 url填入的是所需要的项目A的路径,去调用到我们封装的独立的方法,不放到基类,但是是一个公共功能,所以这里选择使用的是js加载这些数据在页面,所以就不需要...原创 2018-03-22 17:45:01 · 270 阅读 · 0 评论 -
php面向对象总结
面向对象编程 —— OOP(Object-Oriented Programming) 面向对象的三大特征 封装、继承、多态 对象 万事万物皆对象 客观存在的任何一个实体 类 对相同或相似对象的一种抽象描述 类与对象 通常先有类,通过类实例化出对象;大多数情况下使用的是对象 类的定义格式 class 类名 { [成员属性] —— 相当于变量 可以有默认值 不能是变量 ...原创 2018-03-03 18:02:09 · 214 阅读 · 0 评论 -
php文件处理
文件系统: (函数参考-》文件系统相关扩展-》Filesystem) 当程序运行时的数据是存放在内存中的,比如变量、常量等;想要长期保存程序运行完毕所产生的数据,我们可以利用文件的方式存储到硬盘上!文件类型: 可以通过filetype()获取一个文件的类型 windows最常见的只有dir和file判断文件类型 is_dir(路径) //判断是否是目录 is_fil...原创 2018-03-03 18:01:23 · 301 阅读 · 0 评论