
PHP
文章平均质量分 67
haveyb
我们都在努力向前,明天我们到达的高度,取决于今天奋力一跃的力度,当我们在展望未来时,未来已来
展开
-
laravel 配置微信公众号时{"errcode":-106,"errmsg":"token check fail"}
做微信授权登录时,遇到的一个坑,提示配置失败,F12,响应为 errcode":-106,"errmsg":"token check fail请确认下面每一步你都做了,这里使用的是Laravel框架。1、配置路由路由文件为 /routes/web.php,添加下面代码,将请求跳转到控制器中。Route::get('/wechat-verify', 'wech...原创 2020-02-20 17:13:37 · 7350 阅读 · 0 评论 -
wordpress搭建博客 主题推荐 2019
一、generatepress2.14主页: 详情页: 二、 Astra主页:详情页:三、Bstone主页:详情页:四、Hestia主页:详情页:五、Rife free主页:详情页:...原创 2019-12-21 15:52:46 · 3152 阅读 · 0 评论 -
CrossPHP框架的常用操作
1. 在视图控制器中使用$this->res()方法来生成资源文件的绝对路径$this->res('css/style.css');生成的连接为http://youdomain.com/static/css/style.css2. 生成指定app名称的连接$this->appUrl() 第一个参数为基础url, 第二个参数为app名称, 第三个参数为 控制器:方法 第四个参数为参...原创 2018-03-14 10:21:16 · 543 阅读 · 0 评论 -
crossphp框架中,在模板中加载其他模板
这里说我自己做的项目的应用场景要求是用layui框架的layer组件,实现弹出层效果,用原声PHP无疑很容易做到,但是如果应用到crossphp框架流程就会非常麻烦这里简单讲一下大致的步骤:1. 在一个模板文件中应用layui的layer组件实现弹出框index.tpl.php2. 从我们自己定义的路径上可以很容易的看出,这个`路径走的应该是域名根目录下的settle控制器的kk方法然后,因为用到...原创 2018-03-14 11:51:38 · 259 阅读 · 0 评论 -
Nginx 设置,设置已经解析的域名,在nginx中没有定义相应server时的默认访问
场景介绍:因为业务需求,我们需要对域名进行解析,这里我对域名进行了如下解析但是,因为业务需求,我可能在nginx中只定义了kuman.xiaobudiu.top 和 www.xiaobudiu.top 的相应server的子配置文件,如图那么问题来了,怎么才能让其余已经解析的域名访问时,不会出现空白或是报错页面呢这时,我们就需要应用到一个参数default_server,让所有已经解析,但是在ng...原创 2018-06-23 17:11:31 · 18343 阅读 · 0 评论 -
Nginx使用upstream实现动静分离
一、为什么要进行动静分离分离资源,减少不必要到的请求消耗,减少请求延时。注:我这里,是nginx处理静态资源,apache处理动态资源。场景分析:1、未分离之前的场景步骤(1)客户端请求url到中间件(比如nginx,apache)(2)中间件根据url请求相应目录,程序框架(3)程序框架运行程序逻辑(4)程序逻辑请求相应数据资源(5)将数据资源返回给客户端...原创 2018-06-29 22:49:22 · 11458 阅读 · 0 评论 -
数据分块加载——BigPipe 技术【类似facebook】
一、原理分块加载,加载完一块,就先把页面数据刷给用户,再加载下面的,直到加载完毕二、基础需知:三、服务端和php的相应配置如果想实现分块加载【bigpipe技术】,还需要对nginx.conf 和 php.ini 进行相应配置nginx服务端 nginx.conf http块内配置:proxy_buffering offfastcgi_keep_conn onphp 的 php.ini 配置:o...原创 2018-07-09 19:59:34 · 11250 阅读 · 0 评论 -
面试中get和post的区别
get和post的区别主要有以下几方面:1、url可见性:get,参数url可见;post,url参数不可见2、数据传输上:get,通过拼接url进行传递参数;post,通过body体传输参数3、缓存性:get请求是可以缓存的post请求不可以缓存4、后退页面的反应get请求页面后退时,不产生影响post请求页面后退时,会重新提交请求5、传输数据的大小get一般传输数据大小不超过2k-4k(根据浏...原创 2018-07-16 14:12:28 · 43793 阅读 · 3 评论 -
防跳墙访问
出现场景: 1. 没有登录,也能访问网页2. 没有相关权限,也能访问对应的控制器和方法 解决方案: 定义一个CommonController,其他控制器继承CommonController,在CommonController中定义初始化方法_initialize注:这里用的是tp3.2框架,如果我们直接在CommonController中定义__constrct构造...原创 2018-03-05 22:45:18 · 25958 阅读 · 0 评论 -
nginx服务器,访问时显示目录,不直接显示index.php
效果:这里,我使用的是phpstudy配置vhost.conf原创 2018-03-09 21:11:39 · 27959 阅读 · 0 评论 -
Git的使用(推荐命令行模式)
一 使用git版本控制已经逐渐取代cvs,svn等版本控制,对于一名程序员来说,使用git同样是一门必备的功课.1. 仓库初始化查看文件.如果有.git文件夹,说明创建本地仓库成功(.git是隐藏文件夹)2. 修改用户名和邮箱本地配置:注: 在全局配置与本地配置都存在用户名时,本地配置优先级更高3. 修改本地目录配置文件(远程仓库地址)4. 从远程拉取项目到本地步骤:(1) 创建一个空文件夹(2)...原创 2018-03-09 22:42:44 · 13827 阅读 · 0 评论 -
PHP上传图片到数据库,并进行显示
1、创建数据表CREATE TABLE ccs_image ( id int(4) unsigned NOT NULL auto_increment, description varchar(250) default NULL, bin_data longblob, filename varchar(50) default NULL, filesize varchar(5...原创 2018-02-23 23:00:01 · 35660 阅读 · 18 评论 -
论坛中,无限分类的原理
1.创建数据表CREATE TABLE category(`cat_id` SMALLINT unsigned not null auto_increment comment '类别id',`cat_name` VARCHAR(30) not null default '' comment '类别名称',`par_id` SMALLINT unsigned not null defau...原创 2018-03-02 15:20:15 · 21618 阅读 · 0 评论 -
PHP循环输出二维数组
目的: 将二维数组中的每一个元素输出首先定义一个二维数组//定义数组$arr = array( array('北京','上海','深圳','广州'), array('黑龙江','吉林','辽宁','江苏')); 一 for循环输出1.1 直接输出//for循环遍历数组for($i = 0; $i < count($arr); $i++) {...原创 2018-02-24 19:05:12 · 40861 阅读 · 0 评论 -
PHP简单实现递归
//递归//斐波那契数列function digui($n){ if($n > 2) { $arr[$n] = digui($n-1) + digui($n-2); return $arr[$n]; } else { return 1; }}//使用echo digui(5); 总结 :...原创 2018-02-25 12:08:06 · 16172 阅读 · 0 评论 -
tp框架中执行事务
function tran(){ //定义事务成功失败的标志 $mark = true; //1. 实例化模型 $model = D('student'); //2. 开启事务处理 $model->startTrans(); //3. ls减少2000 $sql = "update student set money...原创 2018-03-05 09:18:25 · 17167 阅读 · 0 评论 -
Linux开启fileinfo扩展
在项目初始部署环境的时候,可能考虑的并不全面,就会少装一些扩展,这里讲解如何添加fileinfo扩展1、找到php安装的压缩包2、将压缩包cp到 /data目录下,并解压cp php-7.0.30.tar.gz /data cd /data tar -zxvf php-7.0.30 #解压php压缩文件3、进入fileinfo扩展文件目录cd /data/php-7.0.30/ext/file...原创 2018-06-28 10:10:54 · 35058 阅读 · 0 评论 -
Session的原理,大型网站中Session方面应注意什么?
一、Session和Cookie的区别Session是在服务器端保持会话数据的一种方法(通常用于pc端网站保持登录状态,手机端通常会使用token方式实现),存储在服务端。Cookie是在客户端保持用户数据,存储位置是客户端(浏览器或者手机端)。 二、原理1、当代码session_start(); 运行的时候,就在服务器上产生了一个session文件,随之也产生了与之唯一对应的...原创 2018-07-17 08:17:56 · 29084 阅读 · 0 评论 -
PHP 电子商城基本数据表
1、品牌表 tp_brandCREATE TABLE `tp_brand` ( `id` smallint(5) unsigned NOT NULL AUTO_INCREMENT COMMENT '品牌表', `name` varchar(60) NOT NULL DEFAULT '' COMMENT '品牌名称', `logo` varchar(80) NOT NULL DEF...原创 2018-08-14 23:05:38 · 12637 阅读 · 1 评论 -
php自动加载机制的实现
一、什么是自动加载自动加载就是当我们在当前文件中实例化一个不存在的类时,调用自动加载机制引入相应的类文件。注:自动加载有两种方式(都是php内置的),一种是通过__autoload(),另一种是通过spl_autoload_register()。以下两种方式的介绍中,都是执行test3.php文件。 二、通过__autoload() 实现自动加载/data/www/t...原创 2018-08-15 12:52:43 · 29534 阅读 · 1 评论 -
PHP格式化全国省市区列表
一、代码部分/** * 获取全国省市区列表(格式化后) */ public function getRegionList() { $data = CoreRegion::find()->select(['national_code', 'region_name', 'parent_id', 'region_level'])->...原创 2019-01-08 16:54:24 · 14660 阅读 · 0 评论 -
PHP的构成及生命周期
一、PHP开源源代码下载地址:https://github.com/php/php-src.git二、PHP的构成1、目录结构2、目录分析(1)sapi目录是PHP的应用接口层。(2)main为php的主要代码,主要是输入/输出、Web通信、PHP框架的初始化操作等,比如fastcgi协议的解析、扩展的加载、PHP配置的解析等工作都是在这里完成的。(3)Zen...原创 2019-07-02 20:38:15 · 12869 阅读 · 0 评论 -
XunSearch的使用
一、项目的配置文件1、要想使用xunsearch,首先需要进行配置文件的配置。默认目录在app下,如下面的结构,每一个搜索项目都需要有一个ini文件进行相应的配置。 举例:project.name = novelproject.default_charset = utf-8server.index = 8383server.search = 8384[novel...原创 2018-08-14 15:50:23 · 16815 阅读 · 2 评论 -
PHP开发常见功能实现流程
一、pc端网站登录 1、获取并过滤用户提交的用户名和密码以及验证码2、验证用户提交验证码和session中的验证码是否一致3、验证用户名是否存在4、根据用户名获取密码,并校验密码是否一致5、密码一致,则登录成功,跳转到对应的首页 图示: 二、pc端网站注册1、ajax获取用户要注册的用户名和手机号,并验证是否被占用,如果已经被占用,给出相应提示...原创 2018-08-06 21:45:18 · 14494 阅读 · 0 评论 -
php中常用的加密方式
一、md5要说php中的最常用的加密方式,md5可以说是当仁不让。使用起来也很简单便捷。注:使用方式请看 六、md5加密方式的漏洞及解决方案 二、password_hash作为php5.5以上版本专门用于加密的方式,自然有其独到之处。使用方式链接:https://blog.youkuaiyun.com/m_nanle_xiaobudiu/article/details/79285...原创 2018-07-17 12:14:08 · 29678 阅读 · 0 评论 -
php实现mysql分表
一、场景说明1、为什么要进行分表随着数据量的不断增大,一张表中的数据肯定也会越来越多,甚至达到百万甚至千万级。我们通常会通过搭建mysql集群(主从同步),读写分离来实现优化数据库查询执行效率。但是由于数据表本身是具有表锁(myisam)以及行锁(innodb)的。表锁定表示你们都不能对这张表进行操作,必须等我对表操作完才行。行锁定也一样,别的sql必须等我对这条数据操作完了,才能对这...原创 2018-07-18 13:50:41 · 14026 阅读 · 0 评论 -
PHP 分布式集群中session共享问题以及session有效期的设置
一、Session的原理以下以默认情况举例:session_start();之后,会生成一个唯一的session_id,每一个用户对应唯一一个session_id,每一个session_id对应服务器端的一个session文件。这个session文件存储着当前session_id的信息,比如下面,就存储了name和age的键值。 1、设置Session存储的引擎(本地服务器的文件还...原创 2018-07-24 08:57:56 · 17456 阅读 · 0 评论 -
PHP项目中,记录错误日志
一、场景介绍:环境:LNMP我们通常是通过nginx的错误日志来分析分错的,也就是我们在各个server中定义的error_log。比如下面这样,就是将错误日志定义在/etc/nginx/logs/error/www.xiaobudiu.top.log,发生错误,可以查看的对应错误日志文件即可。server { listen 80 default_server; ser...原创 2018-07-06 17:07:56 · 29700 阅读 · 0 评论 -
php 错误日志 redis' already loaded in Unknown on line 0
报错信息:问题原因:报错信息给出的意思是:redis和memcache 模块已经加载过问题解决:php加载模块有两种方式,一种是通过php.ini 加载模块,另一种是通过编译时的参数加载模块。这里,报错信息提示已经加载过,我尝试将php.ini 文件中的相关extensions注释掉,再重新打印phpinfo(),发现redis和memcahce仍然存在着,并且重启php-fpm之后,不再报错,说...原创 2018-07-07 14:13:39 · 36566 阅读 · 1 评论 -
PHP 项目中缓存的多种应用实现
一、CDN缓存原理和介绍1、各地部署多套静态存储服务,本质上是空间成本换时间2、CDN是域名和真实服务器中间的一个环节,添加cdn节点后,用户访问时,自动选择最近的节点内容,不存在再请求原始服务器3、CDN本质上是一种文件分发类系统,适合存储更新很少的静态内容,文件更新慢注:cdn文件同步有两种方式第一种:文件更新之后,由原始服务器将内容推送到cdn上第二种:为cdn设置过期时间,到期之后,重新请...原创 2018-07-07 23:06:19 · 28487 阅读 · 0 评论 -
PHP中路由和rewrite的使用
一、场景介绍:1、简化url地址,方便大家记忆2、有利于搜索引擎优化3、安全(让用户看不出网站的目录结构)举例:比如我这里将main控制器中的bb方法路由到kk,这样,我们a标签请求跳转到cp.xiaobudiu.top/kk,实际上请求的却是cp.xiaobudiu.top/main/bb。实际上:我们可以将路由理解成一个字符串的别名,比如上边,kk就是main/bb的别名。...原创 2018-08-04 09:32:48 · 25856 阅读 · 0 评论 -
CDN加速
一、CDN的概念全称是Content Delivery Network,即内容分发网络。其基本思路是: 尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用...原创 2018-02-05 23:41:23 · 24084 阅读 · 0 评论 -
动态语言静态化
一、什么是动态语言静态化将现有PHP等动态语言的逻辑代码生成为静态html文件,用户访问动态脚本重定向到静态html的过程注 : 对实时性要求不高的页面才适合去做动态语言静态化 二、为什么要静态化1. 动态脚本通常会做逻辑计算和数据查询,访问量越大,服务器压力越大2. 访问量大时可能会造成CPU负载过高,数据库服务器压力过大3. 静态化可以降低逻辑处理压力,降低数据库...原创 2018-02-06 12:50:06 · 26293 阅读 · 1 评论 -
thinkphp出现Call to undefined function Think\C() in ... online 313
造成这个问题的原因很多,在这里我只说明我自己遇到之后解决的办法我将functions.php改成了function.php之后,修改了一些其他无关紧要的东西出现了这个问题,来回排查,各种尝试,最后,将function.php改回functions.php,可以正常运行...原创 2018-02-12 21:01:06 · 8161 阅读 · 0 评论 -
PHP开发中保证接口安全
模拟客户端请求:<?phpnamespace Home\Controller;use Think\Controller;class ClientController extends Controller{ const TOKEN = 'API'; //模拟前台请求服务器api接口 public function getDataFromServer(){ ...原创 2018-02-27 10:12:50 · 14226 阅读 · 0 评论 -
memcache在项目中的应用
一 安装memcache具体流程这篇文章有写到: 点击 链接 二 在项目中应用memcache为了减轻数据库的查询压力,所以我们把一些不经常变动的数据进行缓存,用户查询时,如果查询的要求是一样的,我们就memcache缓存中读取数据并返回去,如果查询要求变了,我们再到数据库中查询,并将查询结果缓存到memcache,以备下次有同样需求的时候,可以直接从memcache缓存中取出数...原创 2018-02-07 14:16:00 · 16339 阅读 · 0 评论 -
优化-浏览器缓存和压缩优化
一、减少HTTP请求1.图片地图:假设导航栏上有五幅图片,点击每张图片都会进入一个链接,这样五张导航的图片在加载时会产生5个HTTP请求。然而,使用一个图片地图可以提高效率,这样就只需要一个HTTP请求。 服务器端图片地图:将所有点击提交到同一个url,同时提交用户点击的x、y坐标,服务器端根据坐标映射响应客户端图片地图:直接将点击映射到操作<img sr...原创 2018-02-05 22:29:46 · 10630 阅读 · 0 评论 -
优化--减少HTTP请求
一、 图片地图 (将几张图片合为一张,根据用户点击的位置发送不同请求,减少了图片的请求数量)案例所在位置:http://stevesouders.com/hpws/imagemap.php 二、css精灵(和图片地图功能相似,都是将几张图片合并在一起,根据位置发送不同请求)这里不做具体使用介绍,百度有此方面内容,比图片地图这种方法要简单一些 三、合并脚本和样式表使用...原创 2018-02-05 18:29:58 · 24477 阅读 · 0 评论 -
php实现目录及目录文件下的遍历
效果图:代码:原创 2018-01-29 18:40:46 · 10254 阅读 · 0 评论 -
PHP基础(必须熟练掌握的基础)
<?php/** * 三元运算符的应用 *//*$a = 10;$b = 15;echo $a > $b ? 1 : 0;*/// 注:php7新添加的运算符比较运算符x<=>y// 如果x和y相等,就返回0,如果x>y,就返回1,如果x的值小于y,就返回-1/*$a = "aaa";$b = "bbb";echo $a.$b;*/...原创 2018-02-04 11:41:08 · 29536 阅读 · 1 评论