
PHP
文章平均质量分 53
创业程序员卡酷
35+程序员大叔
创业一年从1到N团队加持
不断突破收入上限
分享创业的酸甜苦辣
展开
-
swoole-hyperf(数据库+redis)
环境搭建完毕不要着急不然一不小心掉坑里????hyperf是基于cli模式运行的,作为一个php用的最多的莫过于php-fpm这种模式好处是php专注于业务实现就好了,方便的同时也带来了隐患1、代码执行效率低2、开发者对于底层的实现漠不关心,除了curd剩下的一问三不知不管怎样当你看到这篇文章的时候说明你有一颗上进之心,加油由于直接采用了hyperf官方提供的docker镜像所以有很多东西还不完整邀请进行curd必须得有数据库。docker pull mysqldocker r原创 2021-08-12 19:27:44 · 1310 阅读 · 1 评论 -
swoole-hyperf入门
作为一个phper必须跟上时代,最近研究了一下目前比较新的swoole技术框架hyperf感觉类似于larvel+node1、windows下安装(docker自行下载不会的话百度)1、拉取镜像docker pull hyperf/hyperf2、启动镜像docker run --name hyperf -v D:/swoole:/data/project -p 9501:9501 -it --privileged -u root --entrypoint /bin/sh hyperf/h原创 2021-08-04 15:09:54 · 1773 阅读 · 0 评论 -
docker踩坑记
作为一个PHPer一直是在windows下开发这几年随着docker的星期,swoole的流行感觉越来越吃力了,下定决心学习新东西docker用了一段时间终于大概明白了一些但是在学习swoole-hyperf的时候发现从官网拉去的镜像在挂在目录的时候出现了问题:没有报错文件无法同步1、拉去镜像docker pull hyperf/hyperf2、启动镜像docker run --name hyperf -v /swoole/skeleton:/data/project -p 9501:9原创 2021-08-04 09:55:25 · 218 阅读 · 0 评论 -
linux 安装php8
系统已经安装过php7了所以很多依赖不在重新安装了cd /usr/local/srcwget https://www.php.net/distributions/php-8.0.1.tar.gztar -zxvf php-8.0.1.tar.gzcd php-8.0.1配置(注意和默认的PHP版本以目录区隔)./configure \--prefix=/usr/local/php8 \--exec-prefix=/usr/local/php8 \--bindir=/...原创 2021-01-28 19:31:05 · 2287 阅读 · 0 评论 -
IP转换数字
Ip地址作为一个域名的门牌号很多人只知其一不知其二,今天来总结下IP是怎么在互联网上使用的。目前已经在用的分为32位和64位的IP,64现在用的很少我还没遇到过,不在本文的范畴。32位(示例):10.189.12.241为什么要用这种格式来显示?回答:ip地址是二进制,只不过为了让人看,写成10进制,本质还是二进制php提供了ip2long()和long2ip()来实现IP转换位数字和数字再次转换为IP,用于验证IP的真实性。ip2long()代码示例<?php$ip原创 2021-01-04 17:41:21 · 991 阅读 · 0 评论 -
nginx配置文件介绍
server { listen 80; server_name local.api.baidu.com; access_log /logs/local-api.baidu.com/access.log main; error_log /logs/local-api.baidu.com/error.log ; root "/data/www/api.baidu.com/init/"; index ind...原创 2021-01-04 16:02:21 · 1828 阅读 · 0 评论 -
从网址到IP在到PHP服务经历了什么?
www.xxxx.com怎么解析1、从浏览器的地址栏中输入这个地址之后,浏览器会到dns库中寻找相应的IP地址 DNS解析过程 1.1、浏览器缓存 当用户通过浏览器访问某域名时,浏览器首先会在自己的缓存中查找是否有该域名对应的IP地址(若曾经访问过该域名且没有清空缓存便存在); 1.2、系统缓存 当浏览器缓存中无域名对应IP则会自动检查用户计算机系统...原创 2019-06-25 09:17:26 · 4328 阅读 · 0 评论 -
XSS和CSRF
作为一个网站开发人员安全知识少不了。今天我们来温习一下Xss和Csrf的知识。Xss 跨站脚本(Cross-site scripting,通常简称为XSS) 1、反射型:用户提交信息后经过服务端(也可以不经过服务端,这里指经过输入后的程序解析)后会执行这段js代码。例如用户输入一段:<script>while(true){alert("弹 弹 弹")...原创 2021-01-04 11:46:07 · 156 阅读 · 0 评论 -
工厂模式-Php版
工厂模式(Factory Pattern)最常用的设计模式之一,这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。工厂模式分为三类:简单工厂模式(Simple Factory) 工厂方法模式(Factory Method) 抽象工厂模式(Abstract Factory)简单工厂其实不是一个标准的的设计模式。GOF 23种设计模式中只有「工厂方法模式」与「抽象工厂模式」。简单原创 2020-12-31 15:42:56 · 462 阅读 · 0 评论 -
Memcache和Redis如何二选一
Redis(Remote Dictionary Server ),即远程字典服务。其具备如下特性:基于内存运行,性能高效支持分布式,理论上可以无限扩展key-value存储系统开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的APIMemcache 是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,基于key-value的方式它能够用来存储各种格式的数据,包括图像、视频、文件以及数据原创 2020-12-29 16:19:19 · 221 阅读 · 1 评论 -
PHP经典面试之单例模式
一、什么是单例模式 1.1、作为对象的创建模式,单例模式要确保当前类只有一个实例,并且对外提供这个全局实例的访问入口。它不会创建实例副本,而是会向单例类内部存储的实例返回一个引用。二、PHP单例模式三要素 1. 需要一个保存类的唯一实例的静态成员变量。 2. 构造函数和克隆函数必须声明为私有的,防止外部程序创建或复制实例副本。 3. 必须提供一个访问这个实例的公共静态方法,从而返回唯一实例的一个引用。三、为什么使用单例模式 3.1、以数据库操作为例:若不采用单例模式,.原创 2020-12-29 12:24:46 · 214 阅读 · 0 评论 -
程序员弄明白这些面试题30K+没问题
常规面试5大法1、数据库方面: 1.1、mysql原理及优化 1.2、nosql系列2、算法 2.1、冒泡排序 2.2、3、设计模式 3.1、单例模式 3.2、工厂模式.....4、技术选型 4.1、关于系统解耦的方案 4.2、PHP并发处理方案 php+swoole(workman)5、PHP相关 5.1、数组底层原理 5.2、ip转换数字原理 5.3、php运行...原创 2020-12-29 11:06:34 · 327 阅读 · 0 评论 -
Laravel路由规则
用Composer的方式从官网下载laravel项目真的很坑,vendor项目总是下载不完整,建议install之后update几遍。Laravel项目的目录结构如上所示,在routes目录下新增路由文件,参考示例的访问方式总是404,经过不断的探索发现要想新增路由必须在画圈的部分新增方法,加载新的路由文件才可以生效。这样做的好处是可以按照业务区分把不同的路由放在不同的文件中,业务代码会很清晰。...原创 2020-07-24 14:26:57 · 533 阅读 · 0 评论 -
php调试工具之firephp
最近发现了很多php的专有调试工具相当的强大,为我们节省了很多人力物力。firephp是一款和firebug一起使用的调试工具,在火狐浏览器的插件管理器中查找firephp安装即可。(需要事先安装好firebug)。第一步: 插件的官网http://www.firephp.org/HQ/Install.htm选择下载最新版本的源代码包,下载完毕解压缩后将lib\FirePHPCo原创 2016-04-27 17:25:01 · 362 阅读 · 0 评论 -
微信小程序日常开发中常遇到的错误代码
在开发过程中,会遇到很多微信返回的状态码,鬼知道代表什么意思,现在好了,整理总结了一份状态码,方便大家。微信小程序错误码参考状态码(场景值)说明 -1系统繁忙 0请求成功 40001验证失败 40002不合法的凭证类型 40003不合法的O转载 2018-02-01 17:16:19 · 8628 阅读 · 0 评论 -
Yii2创建modules方法
yii2本身支持创建版本分支,这里面有些坑需要记录一下在模块下的main.php文件return的数组中直接添加第一种方式:'aliases' => ['@xxx => '@frontend/modules/xxx,],'modules' => ['xxx' => ['class' => 'xxx\M...原创 2018-03-15 10:31:42 · 2139 阅读 · 0 评论 -
Yii2加密解密效率问题
Yii::$app->security->decryptByPassword通过上面得到的编码后的数据不是ASCII,需要base64_encode和base64_decode处理下数据。Yii::$app->security->encryptByKey相对于上面的加密方式效率高了很多。如果需要使用在时效比较高的请使用下面的加密方式...原创 2018-06-25 12:02:56 · 699 阅读 · 0 评论 -
php7新特性
php7虽然姗姗来迟但终归还是来了1、增加了64位整数和大文件的支持2、新增了匿名类3、相对于PHP5的许多致命错误改为抛出异常4、性能相对于PHP5提升了2倍变量存储字节变小,减少了内存占用,提升了变量操作的速度。 改善了数组结构,数组元素和hash映射表被分配在同一块内存里,降低了内存的占用提升了cpu缓存命中率 改善了函数调用机制,优化参数传递环节,减少了一些指令,提高执行效率5、新增空接合操作符6、增加了函数的返回类型PHP5无法定义函数或方法的返回类型,支持4种返原创 2018-07-05 16:42:58 · 305 阅读 · 0 评论 -
yii2使用hasOne联查的数据,同样实现在列表中的排序功能
public function actionList(){ $where['storeid'] = $this->storeid; $where['status'] = [Table::STATUS_NORMAL, Table::STATUS_PEND]; $model = new ActiveDataProvider([ 'query' => T原创 2017-07-28 11:38:11 · 1471 阅读 · 0 评论 -
Yii2创建程序更新和写入的日志捕捉
需要在config/main.php中添加一个行为配置'as adminLog' => 'backend\behaviors\AdminLogBehavior',同时在对应的目录backend下创建行为操作文件behaviors\AdminLogBehavior/*** Created by PhpStorm.* User: yidashi* Date:原创 2016-08-12 11:02:46 · 946 阅读 · 1 评论 -
中英文混合正则
preg_match("/^[\x{4e00}-\x{9fa5}a-zA-Z]{2,20}$/u",$str)原创 2016-04-27 17:25:29 · 1963 阅读 · 0 评论 -
php接收数据流
php正常接收参数的方式如下:$_GET$_POST$_REQUEST但是如果跨语言接收请求参数的话,可能会出现一系列的问题,其他语言的http请求可能是基于数据流的概念来传递参数的,如果按照常规处理,很可能接不到参数程序无法正常处理数据,下面介绍一种新的处理方法:file_get_contents('php://input', 'r');我们可以在接受参数的php脚本中加上面的原创 2016-04-27 17:25:27 · 5562 阅读 · 0 评论 -
手机正则和邮箱正则
//正则测试$mail="/^[a-zA-Z0-9][A-Za-z0-9_.]{0,30}@([a-zA-Z0-9_]+\.){1,2}[A-Za-z]{2,3}$/";第一个字符:数字字母,但是已字母的居多。第二个字符以后:字母、数字、下划线、点@邮箱符号域名部分:字母、数字、下划线、点 $mobile = "/^1[3|4|5|8][0-9]{9}$/";//"/^1[3原创 2016-04-27 17:25:12 · 505 阅读 · 0 评论 -
值传递和值引用却别以及测试用例
//值传递 可以说是变量的copy,新变量和原有变量的修改互不影响。//引用传递:新变量和原有变量指向同一个区域,变量前面加&符号,任何一方变量的改变都回影响数据的值//值传递用例function transfer_value($string) { $string+=1111;} $a = 1111;transfer_value($a);echo $a;//输出 111原创 2016-04-27 17:25:09 · 302 阅读 · 0 评论 -
PHP图像函数列表
GetImageSize作用:取得图片的大小[即长与宽] 用法:array GetImageSize(string filename, array[imageinfo]);ImageArc作用:画弧线用法:int ImageArc(int im, int cx, int cy, int w, int h, int s,int e, int col);ImageChar作用:原创 2016-04-27 17:24:35 · 523 阅读 · 0 评论 -
php水印处理类中级篇
class imgwater{ static$imgtype = array('jpeg','jpg','gif','bmp'); privatefunction checkimg($filename){ $filename = trim($filename); if(!$filename){原创 2016-04-27 17:24:14 · 241 阅读 · 0 评论 -
PHP+SQL注入浅析
PHP+SQL注入浅析 1、何为SQL注入?2、SQL注入的方式?3、如何防止网站被SQL注入? SQL注入定义 hack通过不断的尝试来获取网站的漏洞(服务器,数据库信息),拼装SQL语句实现SQL注入非法获取数据。SQL注入方式注入示例① http://www.mytest.com/showdetail.php?id=49 ② htt原创 2016-04-27 17:24:02 · 501 阅读 · 0 评论 -
手动编译php
总是用套件搭建环境导致对环境的内在关联关系不是很明白,因为套件吧一切都帮你搞定了。最近手动编译了nginx发现其实光编译还不够还要知道相关的东西才能够保证系统正常运转。好了不说废话了开始手动编译php1、从php官网下载5.6版本http://124.205.69.131/files/A0630000026D9A5F/cn2.php.net/distributions/php-5.6.16.原创 2016-04-27 17:26:05 · 1860 阅读 · 0 评论 -
mysql默认为null的字段更新规则
最近发现Mysql中,定义为数值型默认为NULL的字段。(假设此字段名为like,表名为games),那么在此字段上通过语句:UPDATE`games`SETlike=ifnull(like,0)+1来更新like字段的值。1、如果字段like的值空的话:想通过该更新语句更新like字段的值将不起作用;同样如果使用语句:UPDATE`games`SETli原创 2016-04-27 17:23:20 · 3892 阅读 · 0 评论 -
Yii2 CURD使用心得(一)
第一步先创建model记住Namespace一定要和真是要生成的目标目录一致,估计这个操作是个文件缓存为下一步操作做了相应的记录第二步CRUD操作原创 2016-05-27 15:57:51 · 954 阅读 · 0 评论 -
php正则过滤html标签、空格、换行
$str=preg_replace("/\s+/", " ", $str); //过滤多余回车$str=preg_replace("/<[]+/si","<",$str);//过滤$str=preg_replace("//si","",$str);//注释$str=preg_replace("//si","",$str);//过滤DOCTYPE$str=preg_replace(原创 2016-04-27 17:22:39 · 2490 阅读 · 0 评论 -
php水印原理篇
//分别载入两张图片 $img_source 源图 $img_yin 水印图$img_source = "sour.jpg";$img_yin ="yin.png";$im = imagecreatefromjpeg($img_source);$img2 = imagecreatefrompng($img_yin); //取得各自的长宽,计原创 2016-04-27 17:24:12 · 509 阅读 · 0 评论 -
session回收机制
由于PHP的工作机制,它并没有一个daemon线程,来定时地扫描session信息并判断其是否失效。当一个有效请求发生时,PHP会根据全局变量session.gc_probability/session.gc_divisor(同样可以通过php.ini或者ini_set()函数来修改)的值,来决定是否启动一个GC(Garbage Collector)。默认情况下,session.gc_pro原创 2016-04-27 17:25:06 · 3280 阅读 · 0 评论 -
$_SERVER说明文档
$_SERVER['PHP_SELF'] #当前正在执行脚本的文件名,与document root相关。$_SERVER['argv'] #传递给该脚本的参数。$_SERVER['argc'] #包含传递给程序的命令行参数的个数(如果运行在命令行模式)。$_SERVER['GATEWAY_INTERFACE'] #服务器使用的 CGI 规范的版本。例如,“CGI/1.1”。$_SERV原创 2016-04-27 17:23:10 · 236 阅读 · 0 评论 -
php生成验证码-原理版
error_reporting(E_ALL);session_start();define ("DIR_ROOT",dirname(__FILE__)."/lib/");$data = array ( 2,3,4,5,6,7,8,9,'a','b','c','d','e','f','g','h','i','j','k','m','n','p', '原创 2016-04-27 17:23:55 · 311 阅读 · 0 评论