摘要: [原文地址:https://blog.ti node.com/blog...] 干巴巴地叨逼叨了这么久,时候表演真正的技术了! 做个高端点儿的玩意吧,加入我们要做一个任务系统,这个系统可以在后台帮我们完成一大波(注意是一大波)数据的处理,那么我们自然想到,多开几个进程分开处理这些数据,同时我们不能执 阅读全文
posted @ 2018-11-16 21:16 sfornt 阅读(199) 评论(0) 推荐(0)
摘要: 下载 https://github.com/jonnywang/... 安装使用 配置说明 以redis协议对外提供脏字过滤服务 字典格式以行为单位填写待过滤脏字 命令 用例 测试 支持 QQ群 233415606 原文地址:https://segmentfault.com/a/1190000016 阅读全文
posted @ 2018-11-16 21:13 sfornt 阅读(322) 评论(0) 推荐(0)
摘要: 由于项目需要,把项目升级到了php7。但是升级了之后发现mongo扩展不能用了。php7.0以上只支持mongodb扩展了。而mongodb扩展的驱动使用起来比monmgo扩展显得很复杂,啰嗦。在网上找了很久。终于找到了一个比较简洁的mongodb类。语法跟mongo的差不多。清晰,自然。 项目地址 阅读全文
posted @ 2018-11-16 21:12 sfornt 阅读(1250) 评论(0) 推荐(0)
摘要: 这里我们主要利用Redis的setnx的命令来处理高并发。 setnx 有两个参数。第一个参数表示键。第二个参数表示值。如果当前键不存在,那么会插入当前键,将第二个参数做为值。返回 1。如果当前键存在,那么会返回0。 创建库存表 CREATE TABLE ( int(11) unsigned NOT 阅读全文
posted @ 2018-11-16 21:11 sfornt 阅读(825) 评论(0) 推荐(0)
摘要: [原文地址:https://blog.ti node.com/blog...] 要想更好了解socket编程,有一个不可绕过的环节就是IO.在Linux中,一切皆文件.实际上要文件干啥?不就是读写么?所以,这句话本质就是"IO才是王道".用php的fopen打开文件关闭文件读读写写,这叫本地文件IO 阅读全文
posted @ 2018-11-16 21:09 sfornt 阅读(278) 评论(0) 推荐(0)
摘要: 重大新特性 支持 Redis/PDO/MySQLi 从4.1.0版本开始支持了对PHP原生Redis、PDO、MySQLi协程化的支持。 可使用Swoole\Runtime::enableCorotuine()将普通的同步阻塞Redis、PDO、MySQLi操作变为协程调度的异步非阻塞IO 协程跟踪 阅读全文
posted @ 2018-11-16 21:08 sfornt 阅读(175) 评论(0) 推荐(0)
摘要: 前面写过利用文件锁来处理高并发的问题的,现在我们说另外一个处理方式,利用Mysql的锁来解决高并发的问题 先看没有利用事务的时候并发的后果 创建库存管理表 CREATE TABLE ( int(11) unsigned NOT NULL AUTO_INCREMENT, int(11) DEFAULT 阅读全文
posted @ 2018-11-16 21:07 sfornt 阅读(1245) 评论(0) 推荐(0)
摘要: 今天在对接一个第三方接口的时候,对方需要AES CBC模式下的加密。这里简单写一个demo 执行test方法 加密结果 øæ×Œ“j·A" OÈ[ótcÚ‡2Y‰XXÒ¦½™Ép¬p[DâFw`?oàá¹d&x4(çôl£‰¡±Ü‘I¾'ä YÖsÓd°Ý·^$’4höè¶Â÷G 阅读全文
posted @ 2018-11-16 21:06 sfornt 阅读(3129) 评论(0) 推荐(0)
摘要: 利用flock()函数对文件进行加锁(排它锁),实现并发按序进行。 flock(file,lock,block)有三个参数。 file : 已经打开的文件 lock : 锁的类型 LOCK_SH : 共享锁定(读锁) LOCK_EX : 独占锁定(排它锁,写锁) LOCK_UN : 解锁 LOCK_ 阅读全文
posted @ 2018-11-16 21:05 sfornt 阅读(1293) 评论(0) 推荐(0)
摘要: JWT是什么 JWT是json web token缩写。它将用户信息加密到token里,服务器不保存任何用户信息。服务器通过使用保存的密钥验证token的正确性,只要正确即通过验证。基于token的身份验证可以替代传统的cookie+session身份验证方法。JWT由三个部分组成:header.p 阅读全文
posted @ 2018-11-16 21:04 sfornt 阅读(6035) 评论(0) 推荐(0)
摘要: 使用到 redis list llen 命令:获取列表的长度,如果列表key不存在那么也是返回0,如果给的key不是一个列表类型会返回一个错误 lpush命令:将值插入到列表头部,如果 key 不存在,一个空列表会被创建并执行 LPUSH 操作。 当 key 存在但不是列表类型时,返回一个错误。 l 阅读全文
posted @ 2018-11-16 21:04 sfornt 阅读(707) 评论(0) 推荐(0)
摘要: 工厂模式: 由工厂类根据参数来决定创建出哪一种产品类的实例。工厂类是指包含了一个专门用来创建其他对象的方法的类。所谓按需分配,传入参数进行选择,返回具体的类。工厂模式的最主要作用就是对象创建的封装、简化创建对象操作。 简单的说,就是调用工厂类的一个方法(传入参数)来得到需要的类; 优点 工厂类是整个 阅读全文
posted @ 2018-11-16 21:03 sfornt 阅读(361) 评论(0) 推荐(0)
摘要: 在项目中,难免会遇到闭包的形式,那么在闭包中,变量的作用域到底是怎么样的呢。下面有几个简单的例子。 e1 以上结果会输出 hello_php 那么可以看到 $a 被作为了变量 通过use传递给了 匿名函数 func 作为参数使用;如果去掉$a = 'java'的注释,那么以上结果会输出 hello_ 阅读全文
posted @ 2018-11-16 21:03 sfornt 阅读(1032) 评论(0) 推荐(0)
摘要: call_user_func函数类似于一种特别的调用函数的方法,使用方法如下 第一种情况: 此时 第一个参数 set_max 作为call_user_func 的回调函数使用,$a=111,$b=222。 第二种情况 此时第一个参数为一个数组 那么 回调就是 a类里面的b方法,num作为参数传到b方 阅读全文
posted @ 2018-11-16 21:02 sfornt 阅读(617) 评论(0) 推荐(0)
摘要: 译文首发于 使用 Laravel 5.5+ 更好的来实现 404 响应,转载请注明出处! Laravel 5.5.10 封装了两个有用的路由器方法,可以帮助我们为用户提供更好的 404 页面。现在,当抛出 404 异常时,Laravel 会显示一个漂亮的 404.blade.php 视图文件,你可以 阅读全文
posted @ 2018-11-16 21:01 sfornt 阅读(206) 评论(0) 推荐(0)
摘要: 支持语言 阿拉伯语代码 ar 英语代码 en 中文(简体)代码 zh CN php中curl类常用方法封装和详解 REST API Method translate POST /language/translate/v2 (Translates input text, returning trans 阅读全文
posted @ 2018-11-16 21:00 sfornt 阅读(2264) 评论(0) 推荐(0)
摘要: 注意:本文为转载,原文链接:Windows下PHP服务nginx不能使用file_get_contents/curl/fopen的原因! 一、问题说明 在Windows环境下搭建了一个本地开发服务环境,使用Nginx做服务,但是在使用file_get_contents()获取本地的链接时http:/ 阅读全文
posted @ 2018-11-16 20:59 sfornt 阅读(827) 评论(0) 推荐(0)
摘要: 当你在编写完全为 API 服务的 Laravel 应用时,你希望所有响应都是 JSON 格式的,而不是例如说授权错误会重定向到 /home 或 /login,最终重定向会变成 InvalidArgumentException: Route [login] is not defined. 的视图。 下 阅读全文
posted @ 2018-11-16 20:57 sfornt 阅读(398) 评论(0) 推荐(0)
摘要: 冒泡排序 对数组$arr = [1,7,5,3,3,2]按从小到大进行排序 比较,逻辑大致是这样的。 当i=0的时候进行第一次冒泡 j=0=> 1 7比较,7比1大,不做改变 [1,7,5,3,3,2] j=1=> 7 5比较,5比7小,交换位置 [1,5,7,3,3,2] j=2=&g 阅读全文
posted @ 2018-11-16 20:56 sfornt 阅读(199) 评论(0) 推荐(0)
摘要: 昨天在本地环境创建了一个文件,文件编码是UTF 8格式,打印一个简单的语句竟然出现了中文乱码,折腾了很久,才找到了原因。 乱码问题 昨天写了一个很简单的php输出中文页面,但是出现了乱码问题,第一反应可能是脚本文件的编码格式有问题,看了下,没有问题,原文件编码为utf 8,那是什么原因呢? 这种问题 阅读全文
posted @ 2018-11-16 20:55 sfornt 阅读(205) 评论(0) 推荐(0)
摘要: 在 windows10 系统中安装 homestead 本地开发环境 在 windows10 环境下安装 homestead 开发环境,网上有很多相关教程其中大多都是 mac 环境,很多大神都是用户的 mac 。 但是还是有很多像我这样的小弟还是用的 windows 系统,而在 win10 系统上面 阅读全文
posted @ 2018-11-16 20:54 sfornt 阅读(886) 评论(0) 推荐(0)
摘要: 前言 Zend Framework 是 PHP 的官方框架,随着 Zend Expressive Swoole 0.2.2 的发布,率先支持了 Swoole 4 的协程功能,现在可以仅通过一个配置即可使整个应用以协程模式运行,完美解决了从前的笨重低性能的印象,基于 Zend Expressive 完 阅读全文
posted @ 2018-11-16 20:53 sfornt 阅读(361) 评论(0) 推荐(0)
摘要: 链表与递归 LeetCode第203题 题目: 删除链表中等于给定值 val 的所有节点。 示例: 输入: 1 >2 >6 >3 >4 >5 >6, val = 6 输出: 1 >2 >3 >4 >5 2.使用虚拟头节点 public cl 阅读全文
posted @ 2018-11-16 20:52 sfornt 阅读(145) 评论(0) 推荐(0)
摘要: 一、算术运算符 1. 概览 例子 名称 结果 $a + $b 加法 $a 和 $b 的和。 $a $b 减法 $a 和 $b 的差。 $a $b 乘法 $a 和 $b 的积。 $a / $b 除法 $a 除以 $b 的商。 $a % $b 取余 $a 除以 $b 的余数。 $a 取反 $a 的相反数 阅读全文
posted @ 2018-11-16 20:49 sfornt 阅读(167) 评论(0) 推荐(0)
摘要: 一、变量的定义 1. 变量的命名规则 变量名可以包含字母、数字、下划线,不能以数字开头。 在此所说的字母是 a z,A Z,以及 ASCII 字符从 127 到 255(0x7f 0xff)。因此实际上使用中文变量名也是合法的。甚至使用中文的标点符号作为变量名都是合法的。只是一般都不推荐这样用。 变 阅读全文
posted @ 2018-11-16 20:48 sfornt 阅读(180) 评论(0) 推荐(0)
摘要: 最近项目开发中需要使用 Kafka 消息队列。经过检索,PHP下面有通用的两种方式来调用 Kafka 。 php rdkafka 扩展 以 PHP 扩展的形式进行使用是非常高效的。另外,该项目也提供了非常完备的 文档 。 不过在 Mac 环境中安装的过程中出现了以下报错: 开始以为是因为 pecl 阅读全文
posted @ 2018-11-16 20:47 sfornt 阅读(1301) 评论(0) 推荐(0)
摘要: 冒泡排序 对数组$arr = [9,7,2,77,31]按从小到大进行排序 比较,逻辑大致是这样的。默认第一个元素是最小值,所以从第二个元素开始一次与前面的元素进行比较,插入到合适的位置 i=1 j=0 时;将7与9进行比较。发现7比9小,交换位置,此时得到数组[7,9,2,77,31] i=2 j 阅读全文
posted @ 2018-11-16 20:46 sfornt 阅读(207) 评论(0) 推荐(0)
摘要: 前言 面试是你进入公司的第一个关卡,如同高考一般,但是面试不是高考,高考只有一次,而面试则可以有N次,只要有合适的面试邀请,你就可以继续尝试,不要害怕失败;假如公司没有选择你,不是你不优秀,只是你不符合他们的要求罢了,结束后总结下面试中不足的地方,及时调整好心态,准备下个面试才是你最正确的做法。 面 阅读全文
posted @ 2018-11-16 20:45 sfornt 阅读(1182) 评论(0) 推荐(0)
摘要: 前言 分布式锁,是控制分布式系统之间同步访问共享资源的一种方式 在分布式系统中,常常需要协调他们的动作。如果不同的系统或是同一个系统的不同主机之间共享了一个或一组资源,那么访问这些资源的时候,往往需要互斥来防止彼此干扰来保证一致性,在这种情况下,便需要使用到分布式锁。 这里主要简单介绍三种方式:基于 阅读全文
posted @ 2018-11-16 20:43 sfornt 阅读(7491) 评论(0) 推荐(1)
摘要: 说明 群机器人是钉钉群的高级扩展功能。群机器人可以将第三方服务的信息聚合到群聊中,实现自动化的信息同步。目前,大部分机器人在添加后,还需要进行Webhook配置,才可正常使用(配置说明详见操作流程中的帮助链接)。例如:通过聚合GitHub,GitLab等源码管理服务,实现源码更新同步。通过聚合Tre 阅读全文
posted @ 2018-11-16 20:43 sfornt 阅读(713) 评论(0) 推荐(0)
摘要: 我在开发过程中遇到这么这个问题,因为赶进度,没有记下来处理方案,在鸟哥的博客看到原理分析,很到位!平时开发中总是急着处理问题,没有深入分析和记录问题。 1、问题: 今天是2018 07 31 执行代码:date("Y m d",strtotime(" 1 month"))输出是2018 06 01? 阅读全文
posted @ 2018-11-16 20:41 sfornt 阅读(158) 评论(0) 推荐(0)
摘要: 后端服务开发中经常会有并发请求的需求,比如你需要获取10家供应商的带宽数据(每个都提供不同的url),然后返回一个整合后的数据,你会怎么做呢? 在PHP中,最直观的做法foreach遍历urls,并保存每个请求的结果即可,那么如果供应商提供的接口平均耗时5s,你的这个接口请求耗时就达到了50s,这对 阅读全文
posted @ 2018-11-16 20:40 sfornt 阅读(4652) 评论(0) 推荐(1)
摘要: 开发过程中经常会使用到数组函数,故特地总结出来,自己熟悉,同时供大家参考!(实例部分会抽空尽快完成) 一、目录 array_merge(); 合并数组 array_keys(); array_filter(); in_array(); array_shift(); array_map(); arra 阅读全文
posted @ 2018-11-16 20:39 sfornt 阅读(223) 评论(0) 推荐(0)
摘要: 近来正在回顾PHP的文件上传。在此做个记录。 原文地址:https://segmentfault.com/a/1190000016359542 阅读全文
posted @ 2018-11-16 20:37 sfornt 阅读(170) 评论(0) 推荐(0)
摘要: 前言 MySQL服务器可以在不同的SQL模式下运行,并且可以针对不同的客户端以不同的方式应用这些模式,具体取决于sql_mode系统变量的值。DBA可以设置全局SQL模式以匹配站点服务器操作要求,并且每个应用程序可以将其会话SQL模式设置为其自己的要求。 模式会影响MySQL支持的SQL语法以及它执 阅读全文
posted @ 2018-11-16 20:37 sfornt 阅读(704) 评论(0) 推荐(0)
摘要: 因功能需求,需要用到联动,特此记录分享 一、视图中 二、控制器 三、实现效果 原文地址:https://segmentfault.com/a/1190000016371322 阅读全文
posted @ 2018-11-16 20:35 sfornt 阅读(388) 评论(0) 推荐(0)
摘要: 认证介绍 和Web应用不同,RESTful APIs 通常是无状态的, 也就意味着不应使用 sessions 或 cookies, 因此每个请求应附带某种授权凭证,因为用户授权状态可能没通过 sessions 或 cookies 维护, 常用的做法是每个请求都发送一个秘密的 access token 阅读全文
posted @ 2018-11-16 20:35 sfornt 阅读(343) 评论(0) 推荐(0)
摘要: 前言 redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存、亦可持久化的日志型、key value数据库,并提供多种语言的API。 它是内存存储的数据结构服务器,可用作数据库、高速缓存和消息队列代理。 通过数据全部in momery的方式保证高速访问,同时提供数据落地的功能,这是re 阅读全文
posted @ 2018-11-16 20:34 sfornt 阅读(228) 评论(0) 推荐(0)
摘要: 在现代化 PHP 高级开发中,Swoole 为 PHP 带来了更多可能,如:常驻内存、协程,关于传统的 Apache/FPM 模式与常驻内存模式(同步)的巨大差异,之前我做过测试,大家能直观的感受到性能的巨大提升,但是协程到来后,又带来了多少性能的提升呢?提升的又是哪方面的性能?下面逐步测试一下。 阅读全文
posted @ 2018-11-16 20:33 sfornt 阅读(730) 评论(0) 推荐(0)
摘要: 转载请注明文章出处: https://tlanyan.me/php review... PHP回顾系列目录 PHP基础 web请求 cookie web响应 session 数据库操作 加解密 Composer 创建自己的Composer包 发送邮件 IO 流 Socket编程 多进程编程 执行流程 阅读全文
posted @ 2018-11-16 20:32 sfornt 阅读(441) 评论(0) 推荐(0)
摘要: 原来为了简单方便,自己小网站上的文章页的相关内容推荐就是从数据库里随机抽取数据来填充一个列表,所以一点相关性都没有,更本没有办法引导用户去访问推荐内容。 算法选择 如何能做到相似内容的推荐呢,碍于小网站还跑在虚拟主机上(对的,连一个自己完整可控的服务器都没有),所以可以想的办法不多,条件限制在 只能 阅读全文
posted @ 2018-11-16 20:31 sfornt 阅读(361) 评论(0) 推荐(0)
摘要: 最近项目做API认证,最终技术选型决定使用JWT,项目框架使用的是laravel,laravel使用JWT有比较方便使用的开源包:jwt auth。php 后端实现JWT认证方法 使用composer安装jwt auth,laravel使用的框架版本为5.0,jwt auth最新稳定版本为0.5.1 阅读全文
posted @ 2018-11-16 20:30 sfornt 阅读(1199) 评论(0) 推荐(0)
摘要: 前言 管道是进程间通信 IPC 的最基础的方式,管道有两种类型:命名管道和匿名管道,匿名管道专门用于具有血缘关系的进程之间,完成数据传递,命名管道可以用于任何两个进程之间。swoole 中的管道都是匿名管道。 在 swoole 中,有三种不同类型的管道,其中 swPipeBase 是最基础的管道,s 阅读全文
posted @ 2018-11-16 20:29 sfornt 阅读(363) 评论(0) 推荐(0)
摘要: 背景 在日常工作中,可能会经常遇到一些PHP的代码场景,需要我们去除数组中的某个项,通常会直接调用unset方法,但是如果用得不妥,会给自己挖坑 1.实操 以下使用具体例子进行证明假设有数组如下值: 1).设定场景是去除年龄为0的数值.简单方法如下: 2).设定场景取去除0值之后的数组中的第一个人的 阅读全文
posted @ 2018-11-16 20:28 sfornt 阅读(1338) 评论(0) 推荐(0)
摘要: 前言 Supervisor是一个客户端/服务器系统,允许其用户在类UNIX操作系统上控制许多进程。(官方解释) 简单点来讲,就是一个监控脚本运行的工具,不过他可以统一化管理,laravel的队列文档上也有相关使用方式方法,例如 定时脚本的启动、重启、关闭和日志监控 swoole的启动、重启、关闭和日 阅读全文
posted @ 2018-11-16 20:27 sfornt 阅读(206) 评论(0) 推荐(0)
摘要: 一、函数的定义 1. 函数的命名规则 函数名可以包含字母、数字、下划线,不能以数字开头。 在此所说的字母是 a z,A Z,以及 ASCII 字符从 127 到 255(0x7f 0xff)。因此实际上使用中文变量名也是合法的。甚至使用中文的标点符号作为变量名都是合法的。只是一般都不推荐这样用。 函 阅读全文
posted @ 2018-11-16 20:24 sfornt 阅读(647) 评论(0) 推荐(0)
摘要: phpunit使用 标签(空格分隔): php 现在是凌晨 3 点。我们怎样才能知道自己的代码依然在工作呢?Web 应用程序是 24x7 不间断运行的,因此我的程序是否还在运行这个问题会在晚上一直困扰我。单元测试已经帮我对自己的代码建立了足够的信心 —— 这样我就可以安稳地睡个好觉了。 单元测试 是 阅读全文
posted @ 2018-11-16 20:24 sfornt 阅读(396) 评论(0) 推荐(0)
摘要: MySQL数据类型优化 作者的故事 原本觉得mysql数据类型是非常简单并十分基础的知识,认为自己掌握的差不多了。但经过上一次的面试,才发现自己掌握的并不牢固,很多细节和原理并不知道。后来翻阅了《高性能mysql》这本书,仔细阅读了第四章Schema与数据类型优化。因此,写这篇文章记录和总结下,并加 阅读全文
posted @ 2018-11-16 20:23 sfornt 阅读(426) 评论(0) 推荐(0)
摘要: 1. 什么是引用 在 PHP 中引用是指用不同的名字访问同一个变量内容。PHP 中的变量名和变量内容是不一样的, 因此同样的内容可以有不同的名字。最接近的比喻是 Unix 的文件名和文件本身——变量名是目录条目,而变量内容则是文件本身。引用可以被看作是 Unix 文件系统中的硬链接。 PHP 中的引 阅读全文
posted @ 2018-11-16 20:22 sfornt 阅读(189) 评论(0) 推荐(0)
摘要: 大家都知道 laravel 项目写起来是挺爽,但是在生产环境性能不高,我们来抽丝剥茧分析我自己项目的运行时间消耗: Bootstrap 耗时 步骤 耗时 Illuminate\Foundation\Bootstrap\LoadEnvironmentVariables 0.3058910369873 阅读全文
posted @ 2018-11-16 20:21 sfornt 阅读(1740) 评论(0) 推荐(1)
摘要: 质数的定义 质数又称素数。一个大于1的自然数,除了1和它自身外,不能整除其他自然数的数叫做质数;否则称为合数。 实现思路 循环所有可能的备选数字,然后和中间数以下且大于等于2的整数进行整除比较,如果能够被整数,则肯定不是质数,相反,就是质数。 第一种算法 这也是最可能先想到的,也就是直接和备选数的中 阅读全文
posted @ 2018-11-16 20:19 sfornt 阅读(2050) 评论(0) 推荐(1)
摘要: 前言 虽然工作中,你觉得自己并没有涉及到算法这方面的东西,但是算法是程序的核心,一个程序的好与差,关键是这个程序算法的优劣,所以对于冒泡排序、插入排序、选择排序、快速排序这四种基本算法,我想还是要掌握的。 冒泡排序法 冒泡排序大概的意思是依次比较相邻的两个数,然后根据大小做出排序,直至最后两位数。由 阅读全文
posted @ 2018-11-16 16:31 sfornt 阅读(357) 评论(0) 推荐(0)
摘要: 定时器任务,在WEB应用比较常见,如何使用PHP实现定时器任务,大致有两种方案:1)使用Crontab命令,写一个shell脚本,在脚本中调用PHP文件,然后定期执行该脚本;2)配合使用ignore_user_abort()和set_time_limit(),使脚本脱离浏览器运行。前者是利用Linu 阅读全文
posted @ 2018-11-16 16:30 sfornt 阅读(550) 评论(0) 推荐(0)
摘要: 描述Given an array of integers, return indices of the two numbers such that they add up to a specific target. Some examples:"0" => true" 0.1 " => 阅读全文
posted @ 2018-11-16 16:29 sfornt 阅读(193) 评论(0) 推荐(0)
摘要: 二分查找的定义 二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。 算法的要求 从上面的定义我们可以知道,满足该算法的要求必须如下两点: 必须采用顺序存储结构。 必须按关键字大小有序排列。 算法 阅读全文
posted @ 2018-11-16 16:28 sfornt 阅读(198) 评论(0) 推荐(0)
摘要: 要点 不同工具之间版本匹配很重要由点及面,先实践起来再学细节的原理和使用 技术栈 辅助 介绍 laravel是一款现代化的php框架es是搜索引擎es head是管理查看使用es的图形界面工具scout是laravel一款优秀的组件 安装流程 laravel laravel安装器安装: 配置env文 阅读全文
posted @ 2018-11-16 16:27 sfornt 阅读(310) 评论(0) 推荐(0)
摘要: 在PHP开发中,我们经常会与数据库打交道。我们都知道,一般的数据处理操作流程为 接收表单数据 数据入库 当在上面的$sql为查询语句时,在if($res)后,我们一般会对得到的结果集进行一系列的操作。最基本的就是使用mysqli_result类处理结果集,主要有以下几种方法: fetch_all() 阅读全文
posted @ 2018-11-16 16:25 sfornt 阅读(495) 评论(0) 推荐(0)
摘要: 前言 PHP的反射类与实例化对象作用相反,实例化是调用封装类中的方法、成员,而反射类则是拆封类中的所有方法、成员变量,并包括私有方法等。就如“解刨”一样,我们可以调用任何关键字修饰的方法、成员。当然在正常业务中是建议不使用,比较反射类已经摒弃了封装的概念。 本章讲解反射类的使用及Laravel对反射 阅读全文
posted @ 2018-11-16 16:24 sfornt 阅读(254) 评论(0) 推荐(0)
摘要: 在讲解生成器之前先介绍一下迭代器: 在 PHP 中,通常情况下遍历数组使用 foreach 来遍历。 如果我们要想让一个对象可以遍历呢? PHP 为我们提供了 Iterator 接口,只要实现了这个接口,这个对象就可以通过 foreach 来迭代。 例子如下: 我们通过foreach遍历 $it 时 阅读全文
posted @ 2018-11-16 16:24 sfornt 阅读(326) 评论(0) 推荐(0)
摘要: PHP下的异步尝试系列 如果你还不太了解PHP下的生成器和协程,你可以根据下面目录翻阅 PHP下的异步尝试一:初识生成器 PHP下的异步尝试二:初识协程 PHP下的异步尝试三:协程的PHP版thunkify自动执行器 PHP下的异步尝试四:PHP版的Promise PHP下的异步尝试五:PHP版的P 阅读全文
posted @ 2018-11-16 16:20 sfornt 阅读(824) 评论(0) 推荐(0)
摘要: PHP下的异步尝试系列 如果你还不太了解PHP下的生成器和协程,你可以根据下面目录翻阅 PHP下的异步尝试一:初识生成器 PHP下的异步尝试二:初识协程 PHP下的异步尝试三:协程的PHP版thunkify自动执行器 PHP下的异步尝试四:PHP版的Promise [PHP下的异步尝试五:PHP版的 阅读全文
posted @ 2018-11-16 16:19 sfornt 阅读(137) 评论(0) 推荐(0)
摘要: PHP下的异步尝试系列 如果你还不太了解PHP下的生成器,你可以根据下面目录翻阅 PHP下的异步尝试一:初识生成器 PHP下的异步尝试二:初识协程 PHP下的异步尝试三:协程的PHP版thunkify自动执行器 PHP下的异步尝试四:PHP版的Promise [PHP下的异步尝试五:PHP版的Pro 阅读全文
posted @ 2018-11-16 16:18 sfornt 阅读(245) 评论(0) 推荐(0)
摘要: PHP下的异步尝试系列 PHP下的异步尝试一:初识生成器 PHP下的异步尝试二:初识协程 PHP下的异步尝试三:协程的PHP版thunkify自动执行器 PHP下的异步尝试四:PHP版的Promise [PHP下的异步尝试五:PHP版的Promise的继续完善] 生成器类 生成生成器 尝试实例化类 阅读全文
posted @ 2018-11-16 16:15 sfornt 阅读(233) 评论(0) 推荐(0)
摘要: 前言 swoole 1.7.2 增加了一个进程管理模块,用来替代 PHP 的 pcntl 扩展。 PHP自带的pcntl,存在很多不足,如 pcntl 没有提供进程间通信的功能 pcntl 不支持重定向标准输入和输出 pcntl 只提供了 fork 这样原始的接口,容易使用错误 swoole_pro 阅读全文
posted @ 2018-11-16 16:12 sfornt 阅读(1180) 评论(0) 推荐(0)
摘要: 两种加载文件的方式 include require 使用场景: 动态加载文件的时候,使用include,否则使用require。 示例: 注意事项: 如果使用include引入路径错误,会产生两个警告错误,不影响后续代码的执行。如果使用require引入路径错误,会报一个Fatal error(致命 阅读全文
posted @ 2018-11-16 16:09 sfornt 阅读(167) 评论(0) 推荐(0)
摘要: 近来学习tp5的过程中,项目中有个发帖功能,选择主题图片。如下: 利用原始的文件上传处理,虽然通过原始js语句能实时显示上传图片,但是这样的话会涉及很多兼容问题。使用ajax技术,实现选择性删除所选图片功能,并不会有兼容问题。 表单文件form: 需要发送Ajax请求的话,当然表单是不能实现我们的需 阅读全文
posted @ 2018-11-16 16:08 sfornt 阅读(343) 评论(0) 推荐(0)
摘要: 前言 PhpSpreadsheet是一个纯PHP类库,它提供了一组类,允许您从不同的电子表格文件格式(如Excel和LibreOffice Calc)读取和写入。用PHP读取Excel、CSV文件 还有一种类似的类库PHPExcel,但是PhpSpreadsheet代码质量和性能比PHPExcel高 阅读全文
posted @ 2018-11-16 16:06 sfornt 阅读(1493) 评论(0) 推荐(0)
摘要: PHP 正则表达式 一、正则表达式简介 正则表达式是用于描述字符排列和匹配模式的一种语法规则。它主要用于字符串的模式分割、匹配、查找和替换操作。目前为止,我们前面所用过的精确(文本)匹配也是一种正则表达式。 在PHP中,正则表达式一般由正则字符和一些特殊字符(类似于通配符)联合构成的一个文本模式的程 阅读全文
posted @ 2018-11-16 16:05 sfornt 阅读(754) 评论(0) 推荐(0)
摘要: 环境 windows nginx php composer 安装 拉取 satis 项目包,并拉取项目依赖 配置 修改 satis/config.json 文件,文件内容如下 拉取包到本地仓库 web/ 是本地仓库访问地址。 如果需要定时更新,则需要配置定时任务去定时更新 设置本地仓库 nginx 阅读全文
posted @ 2018-11-16 16:04 sfornt 阅读(700) 评论(1) 推荐(0)
摘要: 前言 提升能力的方法并非使用更多工具,而是解刨自己所使用的工具。今天我们从Laravel启动的第一步开始讲起。 入口文件 laravel是单入口框架,所有请求必将经过index.php 使用composer是现代PHP的标志 加载启动文件 获取$app是laravel启动的关键,也可以说$app是用 阅读全文
posted @ 2018-11-16 16:03 sfornt 阅读(169) 评论(0) 推荐(0)
摘要: OpenID Connect OpenID Connect简介 OpenID Connect是基于OAuth 2.0规范族的可互操作的身份验证协议。它使用简单的REST / JSON消息流来实现,和之前任何一种身份认证协议相比,开发者可以轻松集成。OpenID Connect允许开发者验证跨网站和应 阅读全文
posted @ 2018-11-16 16:02 sfornt 阅读(754) 评论(0) 推荐(0)
摘要: 不要安装核心版的Linux,不要安装核心版的Linux,不要安装核心版的Linux重要的事情要说3遍。心血来潮突然想在Linux下安装Nginx,但是在安装的国程中发现了很多问题。nginx 基本安装与配置总结 Nginx 下载 这些库的版本自己喜欢定吧,不要太高也不要太低是最好的。 安装 open 阅读全文
posted @ 2018-11-16 14:11 sfornt 阅读(2243) 评论(0) 推荐(0)
摘要: 1.IP:Port 监听方式 php fpm nginx.conf php fpm 在容器里的 nginx.conf 2.UDS 方式监听 php fpm nginx.conf 3.注意 php fpm用ip:port方式建立链接,nginx不要用unix socket方式建立链接,用ip:port 阅读全文
posted @ 2018-11-16 14:10 sfornt 阅读(353) 评论(0) 推荐(0)
摘要: 一些理论知识 先说一下deflate算法吧,deflate是zip压缩文件的默认算法, 其实deflate现在不光用在zip文件中, 在7z, xz等其他的压缩文件中都用, 实际上deflate只是一种压缩数据流的算法,任何需要流式压缩的地方都可以用。 也就是说 zlib 格式, gzip 格式,是 阅读全文
posted @ 2018-11-16 14:09 sfornt 阅读(590) 评论(0) 推荐(0)
摘要: 一.迭代器 分析:想一下,如果把集合对象和对集合对象的操作放在一起,当我们想换一种方式遍历集合对象中元素时,就需要修改集合对象了,违背“单一职责原则”,而迭代器模式将数据结构和数据结构的算法分离开,两者可独立发展。 优点: 支持多种遍历方式。比如有序列表,我们根据需要提供正序遍历、倒序遍历两种迭代器 阅读全文
posted @ 2018-11-16 14:08 sfornt 阅读(332) 评论(0) 推荐(0)
摘要: 首页确定一个核心概念 clearTimer仅可清除当前进程的定时器 server代码如下: 本意图实现server启动后循环输出“timer waiting”,client连接后清除定时器的效果,然而onStart事件是在Master进程的主线程中被调用,而onConnect事件是在work进程中被 阅读全文
posted @ 2018-11-16 14:07 sfornt 阅读(675) 评论(0) 推荐(0)
摘要: Golang 源码剖析:log 标准库 原文地址:Golang 源码剖析:log 标准库 日志 输出 构成 [日期]<空格>[时分秒]<空格>[内容]<n> 源码剖析 Logger (1) mu:互斥锁,用于确保原子的写入(2) prefix:每行需写入的日志前缀 阅读全文
posted @ 2018-11-16 14:06 sfornt 阅读(485) 评论(0) 推荐(0)
摘要: 最近在个人的项目中,想对页面之间跳转的过程进行优化,想到了很多文档或 npm 等都用到的页面跳转进度条,于是便想自己去实现一个,特此记录。vue 圆形进度条组件解析 来看下 npm 搜索组件时候的效果: so 下面咱们一起动手实现一下呗。 定义使用方式 想实现一个组件的前提,一定要想好你的需求是什么 阅读全文
posted @ 2018-11-16 14:04 sfornt 阅读(14180) 评论(0) 推荐(0)
摘要: 本篇主要讲解,如何利用原生的 JavaScript 来实现一个简单的拼图小游戏。 线上体验地址:拼图 一、游戏的基础逻辑 想用一门语言来开发游戏,必须先了解如何使用这门语言来实现一些基础逻辑,比如图像的绘制、交互的处理、定时器等。 1、图形绘制 图形绘制是一切的基础,这里使用 JavaScript  阅读全文
posted @ 2018-11-16 14:00 sfornt 阅读(1248) 评论(0) 推荐(0)
摘要: 从上周开始,我所在的学习小组正式开始了angular的学习,angular是全面支持es6的,所以语法上和以前的angular有了很大的不同,比如变量声明时就抛弃了var,而选择了let和const;记得刚开始学习js的时候,使用webstrom时用var,webstrom会在下面画一条小绿线,表示 阅读全文
posted @ 2018-11-16 13:59 sfornt 阅读(465) 评论(0) 推荐(0)
摘要: 声明:码字不易,转载请注明出处,欢迎文章下方讨论交流。Git 常用命令速查表 最近在一个学习小组里学习AI的课程,我们所有的学习资料和homework都放在gitlab上。今天一个小队友从gitlab上load仓库的时候问起了这个问题,正好在此总结记录一下,仅供参考。 1.git clone git 阅读全文
posted @ 2018-11-16 13:57 sfornt 阅读(20095) 评论(2) 推荐(12)
摘要: var(掌握) 不区分变量和常量 用var声明的变量都是变量,都是可变的,我们可以随便对它进行运算操作。这样当多个人进行同一个项目时,区分变量和常量会越来越难,一不小心就会把设计为常量的数据更改了。 允许重新声明 在相同作用域下用var声明的一个变量,当再次声明时,程序不会报错,并且会把该变量重新赋 阅读全文
posted @ 2018-11-16 13:55 sfornt 阅读(170) 评论(0) 推荐(0)
摘要: 前言 网上找过很多文章,关于通过docker构建mysql容器并将应用容器和docker容器关联起来的文章不多。本文将给出具体的范例。此处为项目的源码 前置条件 该教程要求在宿主机上配置了: docker maven mysql容器 新建一个mysql容器和别的教程没什么区别,这里我们将直接利用官方 阅读全文
posted @ 2018-11-16 13:26 sfornt 阅读(272) 评论(0) 推荐(0)
摘要: js sort方法根据数组中对象的某一个属性值进行排序 sort方法接收一个函数作为参数,这里嵌套一层函数用来接收对象属性名,其他部分代码与正常使用sort方法相同. 原文地址:https://segmentfault.com/a/1190000017028266 阅读全文
posted @ 2018-11-16 13:24 sfornt 阅读(346) 评论(0) 推荐(0)
摘要: 受大学室友的鼓动,我也打算利用公众平台来记录自己的前端知识积累,同时呢,自己总结的东西,总归会有局限性,希望小伙伴能给我指点迷津。知识就是一张巨大的网,作为一名摸不清头绪的入学者,唯一能做的事情就是吐好每一根丝,丝拧成线,线再织成网。好啦,开机仪式over,废话不多说了啦... 关于Sort()这个 阅读全文
posted @ 2018-11-16 13:22 sfornt 阅读(532) 评论(0) 推荐(0)
摘要: 上篇文章我们对STRING数据类型中一些基本的命令进行了介绍,但是没有涉及到BIT相关的命令,本文我们就来看看几个和BIT相关的命令。 本文是Redis系列的第四篇文章,了解前面的文章有助于更好的理解本文: 1.Linux上安装Redis 2.Redis中的五种数据类型简介 3.Redis字符串(S 阅读全文
posted @ 2018-11-16 13:14 sfornt 阅读(340) 评论(0) 推荐(0)
摘要: 这个教程不管node,express,koa都可以用下面方法连接,这里用koa做个参考 这个教程的源码地址: https://github.com/xiaqijian/... 新建文件目录,我是这样子的 很多教程都没有涉及到版本,所以让很多初学者,拷贝他的代码,出现错误问题我的版本: 1.设置配置文 阅读全文
posted @ 2018-11-16 12:58 sfornt 阅读(244) 评论(0) 推荐(0)
摘要: 为什么是小程序? 为什么我们会开发小程序呢?或许是因为工作需要,或许是源于自己的追求(来自名利的欲望),但我要说——这是一种缘分,很美好的缘分,很多年后还值得庆幸的缘分 小程序目前可以分为三个阶段 一是语音和摇一摇(还有yue pao利器的传说) 二是公众号,也就是这时注定了小程序的出现是历史的必然 阅读全文
posted @ 2018-11-16 12:36 sfornt 阅读(227) 评论(0) 推荐(0)
摘要: 前言 JavaScript是一门解释型的语言 , 想要运行JavaScript代码需要两个阶段 编译阶段: 编译阶段就是我们常说的JavaScript预解释(预处理)阶段,在这个阶段JavaScript解释器将完成把JavaScript脚本代码转换到字节码 执行阶段: 在编译阶段JavaScript 阅读全文
posted @ 2018-11-16 12:32 sfornt 阅读(220) 评论(0) 推荐(0)