php基于tp5.1 实现短链接功能 (redis+nginx)
生成及存储短链接
生成短链接
function get_rand_str($len = 12)
{
if (!is_int($len) || $len < 0) {
return false;
}
$char = ''012345...[2020/11/9]
PHP变量
1、变量是什么? 实例:
黑板上标注今天排骨价格41.5元。
$排骨(变量名)=41.5(变量值) 排骨变量名存在 变量表 中,41.5变量值存在内存(黑板)里; 变量表有记录变量值的内存地址 通过内存地址寻找对应内存空间并取出对应的值。 变量名 --------...[2020/11/9]
write文件一个字节后何时发起写磁盘IO
在前文《read文件一个字节实际会发生多大的磁盘IO?》写完之后,本来想着偷个懒,只通过读操作来让大家了解下Linux IO栈的各个模块就行了。但很多同学表示再让我写一篇关于写操作的。既然不少人都有这个需求,那我就写一下吧。
Linux内核真的是太复杂了,源代码的行数已经从1.0版本时...[2020/11/9]
机械硬盘随机IO慢的超乎你的想象
大家都知道硬盘的随机IO很慢,但是比顺序IO慢多少呢,不知道你是否有过数字上的直接对比。今天我来实际压测对比一下磁盘在顺序IO和随机IO不同场景下的性能数据表现。通过今天的实验数据,你将能深刻理解数据库事务中为什么要用日志的方式来实现,为什么索引中要用节点更大的B+树。
对于任何存储系...[2020/11/9]
搭载固态硬盘的服务器究竟比机械硬盘快多少
相信大家都知道固态硬盘(SSD)的优势在于速度比传统的机械硬盘(HDD)要快,所以现在线上服务器里越来越多看到固态硬盘的出现。不过作为一个对性能数字斤斤计较的开发,我想更精确地弄明白搭载SSD的服务器在IO性能上比搭载HDD的究竟快多少,顺序IO情况下快多少,随机IO情况下又能快多少?终...[2020/11/9]
请纠正这5个PHP编码小陋习
在做过大量的代码审查后,我经常看到一些重复的错误,以下是纠正这些错误的方法。
在循环之前测试数组是否为空
$items = [];
...
if (count($items) > 0) {
foreach ($items as $item) {
...[2020/11/9]
PHP 教程:Composer 最佳实践PHP 教程:Composer 最佳实践
概述
Composer 是 PHP 应用程序的依赖管理器,最初发布于大约 8 年前,2012 年 3 月。
在 php 中使用 Composer 可以提高代码的可重用性,并使你的项目能够轻松地集成来自Packagist(主要的 PHPComposer 库)的 PHP 库。今天,我们将重...[2020/11/9]
TP6基础教程-更新中
1.下载框架 必须要有composer (composer镜像必须是国内的,网上直接搜composer镜像) 进入自己创建好的D:\webserver\www\tp6 目录,输入composer create-project topthink/think tp 慢慢等待下载...[2020/11/9]
laravel8更新之维护模式改进
原文连接:https: www.wjcms.net/archive laravel8更新之维护模式改进
对php artisan down命令进行了一些非常漂亮的改进。
在以前的版本中,为了只允许某些人访问该网站,您必须使用白名单功能,如本博文所述:
现在支持预渲染维护模式模板,并且...[2020/11/9]
laravel8更新之速率限制改进
原文地址:https: www.wjcms.net/archive laravel8更新之速率限制改进
Laravel的请求速率限制器功能已增强,具有更大的灵活性和功能,同时仍保持与先前版本的throttle中间件API的向后兼容性。
速率限制器是使用RateLimiter...[2020/11/9]
PhpMyAdmin 配置文件现在需要一个短语密码的解决方法PhpMyAdmin 配置文件现在需要一个短语密码的解决方法
本文主要介绍PhpMyAdmin 配置文件现在需要一个短语密码的解决方法,比较实用,希望能给大家做一个参考。
新版本的PhpMyAdmin 增强了安全性,需要在配置文件设置一个短语密码。否则进入之后会有“配置文件现在需要一个短语密码。”的红色警叹提示。
解决方法:
1、将 phpM...[2020/11/9]
解决phpMyAdmin 高级功能尚未完全设置,部分功能未激活解决phpMyAdmin 高级功能尚未完全设置,部分功能未激活
解决phpMyAdmin 高级功能尚未完全设置,部分功能未激活,这是我们登录到phpMyAdmin都能见到的问题,今天,技术宅教强迫症解决这提示!
版本
phpMyAdmin:4.9.0.1
前期准备
将phpMyAdmin文件夹中
/phpMyAdmin ql/
中的
c...[2020/11/9]
微信小程序获取用户手机号
前端通过微信接口获取这三个参数
$code = input(''post.code'');
$encryptedData = urldecode(input(''post.encryptedData''));
$iv = input(''post.iv'');
首先 我们...[2019/11/15]
PHP7中的异常与错误处理
PHP 中的 Exception, Error, Throwable
PHP 中将代码自身异常(一般是环境或者语法非法所致)称作错误 Error,将运行中出现的逻辑错误称为异常 Exception
错误是没法通过代码处理的,而异常则可以通过 try/catc...[2019/11/15]
PHP实现日历签到,并实现累计积分功能
在网站开发过程中我们会经常用到签到功能来奖励用户积分,或者做一些其他活动。这次项目开发过程中做了日历签到,因为没有经验所有走了很多弯路,再次记录过程和步骤。
1.日历签到样式:使用的是calendar日历插件
前台代码
1 <!doctype htm...[2019/11/15]
LNMP+Redis架构部署
工作机制
L(Linux)N(Nginx)M(Mysql)P(PHP)架构想必大家都知道,LNMP架构主要作用是让前端服务与后端存储以及后端的一下服务进行连接起来,来实现php程序的动态请求。
而今天我们又在LNMP架构上面加一个Redis程序,而Redis在整个架构中起到了一...[2019/11/15]
安装rabbitMQ的PHP扩展安装rabbitMQ的PHP扩展
1.环境准备:centos 7.6+PHP7.3
2.安装rabbitmq-ctar xf rabbitmq-c-0.9.0.tar.gzcd rabbitmq-c-0.9.0mkdir build && cd buildcmake -DCMAKE_INSTALL_PR...[2019/11/15]
2019年PHP面试题附答案(实战经验)2019年PHP面试题附答案(实战经验)
出于一些原因近期做了一次工作变动,在职交接近一个半月时间大概面试了十五家公司,并且得到了自己比较满意的offer,最后基本上无缝衔接了新工作。总体来说,虽然准备的很充分,但面试期间还是暴露了许多问题,所以做下总结,供大家和自己以后参考,主要分四部分讲述: 简历方面,格...[2019/11/15]
thinkphp 比RBAC更好的权限认证方式(Auth类认证)
Auth 类已经在ThinkPHP代码仓库中存在很久了,但是因为一直没有出过它的教程, 很少人知道它, 它其实比RBAC更方便 。 RBAC是按节点进行认证的,如果要控制比节点更细的权限就有点困难了,比如页面上面的操作按钮, 我想判断用户权限来显示这个按钮, 如果没有权限就不会...[2019/11/15]
如何在 PHP 和 Laravel 中使用 Traits
事实上,PHP 作为一门编程语言存在的问题之一,就是你只能使用单继承。这意味着一个类只能从另一个类中继承。例如,可能希望从几个不同的类继承方法,以防止代码重复。在 PHP 5.4 中 一个新的语言特性被添加进来,这就是众所周知的 Traits,它在 Laravel 框架中被广泛使用...[2019/11/15]
PHP经典面试题:如何保证缓存与数据库的双写一致性?
只要用缓存,就可能会涉及到缓存与数据库双存储双写,你只要是双写,就一定会有数据一致性的问题,那么你如何解决一致性问题?
面试题剖析
一般来说,如果允许缓存可以稍微的跟数据库偶尔有不一致的情况,也就是说如果你的系统不是严格要求 “缓存+数据库” 必须保持一致性...[2019/11/15]
PHP变量的初始化以及赋值方式介绍
什么是变量
变量通俗的来说是一种容器。根据变量类型不同,容器的大小不一样,自然能存放的数据大小也不相同。在变量中存放的数据,我们称之为变量值。
PHP 中的变量用一个美元符号后面跟变量名来表示。变量名是区分大小写的。在PHP中变量的命名规则通常是以字母或下划线开头,由...[2019/11/15]
Gin框架 - 自定义错误处理 - it-world
概述很多读者在后台向我要 Gin 框架实战系列的 Demo 源码,在这里再说明一下,源码我都更新到 GitHub 上,地址:https: github.com/xinliangnote/Go开始今天的文章,为什么要自定义错误处理?默认的错误处理方式是什么?那好,咱们就先说下默认的错误处理...[2019/11/15]
php如何处理大数据高并发
大数据解决方案
使用缓存:
使用方式:1,使用程序直接保存到内存中。主要使用Map,尤其ConcurrentHashMap。
使用缓存框架。常用的框架:Ehcache,Memcache,Redis等。
最关键的问题是:什么时候创建缓存,以及其失效机制。
对于空数据的...[2019/11/15]
解决php使用支付宝SDK报错问题
最近公司将一些项目转移了服务器,后来发现使用支付宝支付时发现出现错误,错误如下:
1
The each() function is deprecated. This me age will be suppre ed on furthe
...[2019/11/15]
Gin框架 - 数据绑定和验证 - it-world
概述上篇文章分享了 Gin 框架使用 Logrus 进行日志记录,这篇文章分享 Gin 框架的数据绑定与验证。有读者咨询我一个问题,如何让框架的运行日志不输出控制台?解决方案:
engine := gin.Default() 修改成如下
...[2019/11/15]
PHP SimpleXMLElement::__toString SimpleXML 函数
定义和用法
SimpleXMLElement::__toString - 返回字符串内容
版本支持
PHP4PHP5PHP7
不支持
支持
支持
语法
SimpleXMLElement::__toString ( void )
返回直接在此元素中的文本...[2019/11/14]
微信小程序+php 授权登陆,完整代码微信小程序+php 授权登陆,完整代码
先上图
实现流程:
1、授权登陆按钮和正文信息放到了同一个页面,未授权的时候显示登陆按钮,已授权的时候隐藏登陆按钮,显示正文信息,当然也可以授权和正文分开成两个页面,在授权页面的onl...[2019/11/14]
PHP将数组转字符串
implode('','',$arr)
将数组转字符串
$arr = [
''a''=>1,
''b''=>2,
''c''=>3,
];
$arr_string = implo...[2019/11/14]
PHP将字符转数组
explode('','',$arr_string)
将字符串转数组
$arr_string = ''1,2,3'';
$arr = explode('','',$arr_string);
dump($arr);
打印输出如下
array(3) {
[0] => str...[2019/11/14]
PHP统计二维数组个数
count($arr)
$arr = [
[''id''=>1,''name''=>''Tom''],
[''id''=>2,''name''=>''Sun''],
[''id''=>3,''name''=>''Jay''],...[2019/11/14]
PHP比较两个数组的差异
array_diff($arr, $arr1);
比较数组差异
$arr = [1,2,3,4];
$arr1 = [1,2,3];
$diff = array_diff($arr, $arr1);
dump($diff);
打印输出如下,函数第二个参数为参数值,没有差异则返...[2019/11/14]
ThinkPHP删除目录及目录下文件的函数【转】
1、删除目录及目录下所有的文件
2、删除目录下的所有文件但目录结构保留
3、删除指定文件
贴代码
/**
+-------------------------------------------------------------------------------------...[2019/11/14]
PHP中GD库的使用
1、生成带有文字的普通图片
1、新建空白画布 创建一个真颜色(黑白)的图片
$width = $height = 200;
$img = imagecreatetruecolor($width, $height);
2、选择一个颜色用于背景
$red = $green = $b...[2019/11/14]
php array 转json及java 转换 json数据格式操作示例
本文实例讲述了php array 转json及java 转换 json数据格式操作。分享给大家供大家参考,具体如下:
php array 转json 数据
$arr = array(
"demo1" => "my demo1",
"demo2" => arr...[2019/11/13]
php 自定义函数实现将数据 以excel 表格形式导出示例php 自定义函数实现将数据 以excel 表格形式导出示例
本文实例讲述了php 自定义函数实现将数据 以excel 表格形式导出。分享给大家供大家参考,具体如下:
/**
* 导出数据为excel表格
* @param
* array $data 一个二维数组,结构如同从数据库查出来的数组
* array $title excel...[2019/11/13]
php 多个变量指向同一个引用($b = &$a)用法分析
本文实例讲述了php 多个变量指向同一个引用($b = &$a)用法。分享给大家供大家参考,具体如下:
引用是什么?
引用就是多个变量指向同一个内存区域地址。如我们经常用的实例一个类,就是内存中开辟了一个区域存储实例的类,实例赋值给变量就是让这个变量指向这个内存区域。
多个变量指向同一...[2019/11/13]
php 命名空间(namespace)原理与用法实例小结
本文实例讲述了php 命名空间(namespace)原理与用法。分享给大家供大家参考,具体如下:
命名空间一个最明确的目的就是解决重名问题,PHP中不允许两个函数或者类出现相同的名字,否则会产生一个致命的错误。这种情况下只要避免命名重复就可以解决,最常见的一种做法是约定一个前缀,也可以采用命名...[2019/11/13]
Yii框架学习笔记之应用组件操作示例Yii框架学习笔记之应用组件操作示例
本文实例讲述了Yii框架学习笔记之应用组件操作。分享给大家供大家参考,具体如下:
所有的组件都应声明在config/web.php
组件声明在该数组下
''components''=>array(
自定义组件1 - 函数形式
''customComponen...[2019/11/13]
PHP strstr 字符串函数
定义和用法
strstr - 查找字符串的首次出现
版本支持
PHP4PHP5PHP7
支持
支持
支持
V5.3.0 新增可选的 before_needle 参数。
V4.3.0 strstr() 成为二进制安全的。
语法
strstr (string $...[2019/11/13]
[Php] windows下使用composer出现SHA384 is not supported by your openssl extension[Php] windows下使用composer出现SHA384 is not supported by your openssl extension
composer的版本太低了,需要更新composerwindows的安装使用https: getcomposer.org/Composer-Setup.exe报这个错Failed to decode zlib stream,把下面的composer.phar移动到php.exe所在目录...[2019/11/13]
PHP 核心特性 - 匿名函数
提出
在匿名函数出现之前,所有的函数都需要先命名才能使用
1 function increment($value)
2 {
3 return $value + 1;
4 }
5
6 array_map(''increment'', [1, 2, 3]);...[2019/11/13]
AJAX返回数据类型
前提:通过jquery向服务器提交AJAX申请
结果:获取服务器返回值,并在JS内调用
index.js
function test(){ var url="http: www.test.com/22.php"; var dt={"id":123}; $.post(u...[2019/11/13]
PHP 中四大经典排序算法
1、冒泡排序
在要排序的一组数中,对当前还未排好的序列,从前往后对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即,每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。
1 升序
2 $arr=[1,43,54,62,21,66,32,78,...[2019/11/13]
PHP匿名函数、闭包、function usePHP匿名函数、闭包、function use
匿名函数,也叫闭包函数(closures) ,允许临时创建一个没有制定名称的函数。最常用作回调函数(callback)参数的值。
闭包函数也可以作为变量的值来使用。PHP将会自动把此种表达式转换成内置类 Closure 的对象实例。把一个 Closure 对象赋值给一个变量的方式与普...[2019/11/12]
PHP mysqli_fetch_object MySQLi 函数
定义和用法
mysqli_fetch_object - 返回结果集的当前行作为对象
版本支持
PHP4PHP5PHP7
不支持
支持
支持
语法
mysqli_fetch_object ( mysqli_result $result [, string $c...[2019/11/12]
js 过滤字符 和检测 特殊字符【转】
var str1 = str.replace(/\[\\'\\"\\\\\\/\\b\\f\\n\\r\\t\]/g, ''); 去掉转义字符
var str2= str.replace(/\[\\-\\\_\\,\\!\\|\\~\\`\...[2019/11/12]
Laravel 下配置 Redis 让缓存、Session 各自使用不同的 Redis 数据库
为什么要这样做?
默认情况下,Redis 服务会提供 16 个数据库,Laravel 使用数据库 0 (请见 Redis 文档)作为缓存和 Se ion 的存储。
在执行命令 php artisan cache:clear 清除缓存时,...[2019/11/12]
thinkphp5 + barcode 生成条形码
1、去官网下载类库 “https: www.barcodebakery.com/en/download”,选择自己的版本下载
2、解压放到“E:\phpstudy\PHPTutorial\WWW\guahao\vendor\...[2019/11/12]
PHP Swoole长连接常见问题PHP Swoole长连接常见问题
连接失效问题例子其中,Redis常见的报错就是:
配置项:timeout报错信息:Error while reading line from the serverRedis可以配置如果客户端经过多少秒还不给Redis服务器发送数据,那么就会把连接close掉。
MySQL常见的报错:...[2019/11/12]