php
文章平均质量分 58
杨西瓜
我是西瓜,东南西北的【西】顶呱呱的【瓜】
展开
-
Nginx 中 fastcgi_pass 监听端口有2种方式(转发给php的2种方式): unix socket和tcp socket差别
Nginx连接fastcgi的方式有2种:unix domain socket和TCP,Unix domain socket 或者 IPC socket是一种终端,可以使同一台操作系统上的两个或多个进程进行数据通信。与管道相比,Unix domain sockets 既可以使用字节流和数据队列,而管道通信则只能通过字节流。Unix domain sockets的接口和Internet sock...转载 2019-04-18 10:12:48 · 5096 阅读 · 0 评论 -
(11)学习tp5之命令行的使用和验证表单令牌
命令行的最常用:手册-》命令行-》自动生成目录结构。注意:是先在build.php(右侧)中配置-》执行命令(在最下面)-》才生成好的目录(左侧栏)自动生成继承好的控制器类 或 模型类(手册-》命令行-》创建类库文件)注意:默认创建7个资源路由方法验证总结:1、验证规则分2种:框架自带的(内置规则)、自定义的(用正则)路由:验证分4种:1、控制器验证(手册-》验证-》控制器验证):其实它指的是调用...原创 2018-04-04 18:31:10 · 3505 阅读 · 0 评论 -
(10)学习tp5之视图
视图命名:在各自模块下建立view目录,view目录下建控制器目录(控制器名如果是驼峰法转换为全小写加_)1、路由use think\Route;//该文件是路由的配置文件,解决复杂场景用的Route::get('index','index/IndexController/index'); //手册-》视图-》模板渲染Route::get('send','index/IndexContr...原创 2018-04-04 18:30:36 · 3539 阅读 · 0 评论 -
(9)学习tp5之模型
模型命名:使用去掉前缀的表名(大驼峰).php注意:使用模型中记得修改配置文件// 数据集返回类型'resultset_type' => 'collection', //手册-》数据库-》数据集1、路由2、控制器中的代码(当前是UserController控制器) //往模型中【插入】数据 public function add(){ //二维插入多条,一...原创 2018-04-04 18:29:53 · 925 阅读 · 0 评论 -
(8)学习tp5之ORM操作数据库
ORM是在M层(模型)中用的一种技术(工具,既然是工具它就有名字,它的名字就是Db类)orm即可以在C层直接使用,也可以在M层直接使用orm:对象关系模型映射,它把数据库中的每一张表映射成对象了。然后要操作这个表的时候,就用对象调方法(如->select()),用面向对象的形式就可以了。这样就不用写原生sql语句了控制器文件命名,采用大驼峰。可加Controller,也可不加,建议不加路由:...原创 2018-04-03 02:21:27 · 2751 阅读 · 0 评论 -
(7)学习tp5之控制器原理和使用
控制器的命名空间从何而来,如何修改修改命名空间的方式:注意:改config.php中的app_namespace配置是没用的; 我用的是第2种方式,改完之后控制器的命名空间不要忘记也改成xg\模块名\controller不继承基类调模板如:后台需要提供个页面,将链接给前台直接显示。这种时候如果你继承了,前台访问时会要求登录,这时候最好是不继承,而你又想使用调模板的方法,做一个前台页面(该思路也包含...原创 2018-04-02 18:20:56 · 2589 阅读 · 0 评论 -
(6)学tp5之响应
在手册中没有见到专门讲响应的地方。只有手册-》架构-》API友好 和 手册-》控制器-》Rest控制器中有一点。tp5中的响应,其实就是方便我们输出各种格式1、路由(用的是强制模式)2、控制器中的代码3、json和jsonp的区别,用dump()打印;jsonp和json不一样的地方,用红框圈出来了...原创 2018-04-02 02:12:06 · 862 阅读 · 0 评论 -
(5)学习tp5之请求
一般请求1、定义路由2、控制器代码手册-》请求-》输入变量-》变量获取手册-》请求-》输入变量-》变量过滤session请求(cookie也是这样)1、定义路由2、控制器代码判断请求1、定义路由2、控制器代码方法注入...原创 2018-04-01 23:54:06 · 1302 阅读 · 1 评论 -
(1)学习tp5之助手函数得原理解析
个人理解:助手函数和在application/common.php下的公共函数文件差不多。文档:对应手册-》附录-》助手函数相同点:都可以全局调用(框架的哪个文件中都可以直接使用),都不用new(因为有自动加载)不同点:助手函数是框架提供的(只会用即可),公共函数是自己封装的(要自己先封装好,才能用)1、助手函数是惰性加载,怎么看出来的呢??在配置文件中给当然你要在代码中使用助手函数,它才会加载。...原创 2018-04-01 17:42:09 · 5371 阅读 · 3 评论 -
(4)学习tp5之路由类型,定义,动态注册,过滤,闭包,miss(默认),资源路由
文档对应手册-》附录-》路由注意:访问强制路由的时候,定义的路由名前面加/例子:Route::rule('myadmin','admin/index/index','POST|GET');场景1:$this->success('登录成功','/myadmin'); 场景2:form表单的action='/myadmin'路由模式分2种:首先一定要搞清一个概念,只是模式不同而已,哪种都可以用,...原创 2018-04-01 18:40:35 · 3644 阅读 · 1 评论 -
(3)学习tp5之配置文件
个人理解:全局的意思是,在哪个文件下都可以访问。局部我到没测试1、应用的配置文件是全局;2、模块的配置文件是局部;注意:不同的安装方式,可能你模块里没有这个配置文件,没有还想用,直接在模块目录下自己建个config就可以了3、自定义的配置文件,那就随意咯,也是全局;假设场景:你这个配置文件,全局都要用,但是你还不想和应用的配置文件,放在一起。这时候就需要使用自定义文件了4、环境变量配置文件,也是全...原创 2018-04-01 18:39:06 · 6142 阅读 · 1 评论 -
(2)学习tp5之常量、自动加载、命名空间
文档对应手册-》附录-》常量参考写过框架的应该都看出来了,如果想学自己做框架,看这篇博客自己写框架,入口文件中包含:定义常量、引入核心文件、自动加载、启动框架(中包含了加载控制器,返回响应结果)。tp5只不过是给放在一个入口文件中的东西,分开放在了4个文件中。public/index.php 和 thinkphp/start.php 和 thinkphp/base.php 和 thinkphp/l...原创 2018-04-01 17:56:57 · 2462 阅读 · 0 评论 -
*微信开发之反向代理。反向后修改本地的文件自动更新到服务器
软件下载的链接:http://download.csdn.net/download/qq_33862644/10220524配置流程:线上配置:然后输入几条命令:ssh -L 0.0.0.0:80:127.0.0.1:80 root@127.0.0.1ss -ntl 查看所有使用中的端口ps aux 查看所有进程编辑服务器上面的/etc/ssh/...原创 2018-01-23 14:06:47 · 575 阅读 · 0 评论 -
*Session串号的问题(换号登录,还是原来账号的信息)
案例:a登录后发现,进入了b的个人中心代码分析:session(‘user’,$res);因为你的name就是user是一样的,所以只要上一个用户不退出登录,N个用户都会直接登录解决:每个用户设置session都要有唯一的标...原创 2018-03-30 21:26:57 · 3461 阅读 · 0 评论 -
php7新特性总结
1、新表达式??c = a ?? b;如果a非空,则c = a;如果a为空,则c = b;原创 2018-03-23 22:49:51 · 233 阅读 · 0 评论 -
(12)学习tp5之验证码和缓存
验证码注意:如果你下载的是核心板的tp5,这里没有验证码类,需要使用composer单独安装。composer只能在框架根目录下执行我的框架版本是:5.0.11验证码类的use使用验证码类,需要给他个路由Route::get('captcha','index/VaData/showCaptcha'); //显示验证码,访问这个方法控制器生成验证码public function showCaptc...原创 2018-04-04 18:31:45 · 1312 阅读 · 1 评论 -
(13)学习tp5之上传图片
总结:1、多图上传,name值要是个数组。控制器中直接遍历2、图片上传思路:表单提交后,接收-》效验-》移动文件-》获取上传后的路径-》入库路由:use think\Route;//该文件是路由的配置文件,解决复杂场景用的Route::get('index','index/VaData/index');Route::post('upload','index/VaData/upload');...原创 2018-04-04 18:32:37 · 1124 阅读 · 0 评论 -
(14)学习tp5之日志
注意:日志不要写到项目中(不要使用默认的配置)。自己在服务器上找个地方放绿色就能代表,超过30自己就分割日志了,方便我们删除不需要的旧日志路由:Route::get('index','index/VaData/index');控制器代码:public function index(){ Log::write('测试日志'); //return $this->fetch();...原创 2018-04-04 18:33:07 · 4002 阅读 · 0 评论 -
*【封装php函数】--导入、导出、生成文件
生成文件:$data = [ ['name' => '西瓜','age'=>26], ['name' => '西瓜1','age'=>26],];$fileName = 'e.xml';$filePath = "D:/phpStudy/WWW/test/";echo createXml($data,$fileName,$filePath); ...原创 2018-05-10 23:52:41 · 459 阅读 · 0 评论 -
*php-fpm超时时间设置request_terminate_timeout分析
今天发现了一个很神奇的事情,php日志中有一条超时的日志,但是我request_terminate_timeout中设置的是0,理论上应该没有超时时间才对。PHP Fatal error: Maximum execution time of 30 seconds exceeded in ...OK,先列出现在的配置:php-fpm:request_terminate_timeout...原创 2019-01-18 17:50:23 · 2456 阅读 · 0 评论 -
*php开启错误日志 && 慢日志
错误日志前言:对于我们做php开发的人员,上了生产环境,一定要把相关debug,display_errors错误提示等关掉。谁还难免不犯个错呢?这样能防止非致命性报错下,导致项目路径、数据库等信息泄漏。问:那么问题来了,我们在生产该如何查看php等相关错误呢?答:记录到错误日志里。error.log(或直接发送到syslog)下边就如何配置和查看日志作出简单叙述。一.相关配置...原创 2019-01-02 19:42:06 · 5277 阅读 · 0 评论 -
【语法】tp5的路由,带参数 及 url()的常见使用
需求:js中写php的路由,带参过去思路:改变 路由带参的形式,别用数组形式带参数效果图原创 2018-06-22 10:14:37 · 17299 阅读 · 0 评论 -
*foreach时添加元素 或 修改元素的值
方式1:对二维数组进行操作,&使用一个地址方式2:对二维数组进行操作,按层级追加,先[$key]后['定义二维的key']方式3:对一维数组进行操作,使用内置函数array_push()...原创 2018-05-25 15:56:09 · 2164 阅读 · 0 评论 -
*【功能点】解决location.href跳转后,丢失用户的session
/** * 需求:需要跳转页面。但由于使用location.href跳转相当于是新开启了一个会话,就找不到用户的session了 * 解决思路: * 1、使用session_id。 session_id可以理解为每个会话session的标识符,我们用session_id来区别,同一个用户在同一个浏览器的跳转 * 2、这样,我们就要在,当前(test.php)页面使用s...原创 2018-05-23 14:09:12 · 16009 阅读 · 0 评论 -
*【封装php函数】获取linux服务器centos硬件的一些信息,获取cpu、内存、硬盘、网络带宽的使用率和单位转换
注意:以下代码都是放在服务器上访问,才会有结果的/** * 获取CPU使用率 */function getCPURate($speed = 0.5){ if (false === ($prevVal = @file("/proc/stat"))) { //把整个文件读入到数组中 return false; } $prev...原创 2018-05-14 23:11:09 · 1018 阅读 · 0 评论 -
*【功能点】php导出html和下载文件的耗时算法
导出html的思路:思路1:标签用字符串(引入css、js文件也在标签里)包裹起来、拼好、数据放进去-》将包含html文档和css、js文件的目录-》打个压缩包,放服务器上-》get方式下载思路2:标签用字符串包裹起来,拼好,数据放进去(打个压缩包,放服务器上),将下载的url返回给ajax。post方式下载...原创 2018-05-14 22:37:20 · 352 阅读 · 0 评论 -
*【功能点】php使用阿里云的oss
使用SDK的总思路/* * 使用sdk和调微信api感觉差不多,只是不如api方便,区别也就在于前2步new对象和调方法 * 总结就是:引入类库-》new对象-》调方法-》传参数-》看结果 * * 关键在于, * 怎么知道引入类库中的哪个方法?? * 1、看文档; 2、看demo中的功能,人家引啥咱引啥 * 怎么知道new哪个对象??看文档demo都调哪个 * 怎么知道调哪个...原创 2018-05-21 11:24:49 · 2806 阅读 · 0 评论 -
(15)学习tp5之 自定义命令行
手册-》命令行-》自定义命令行 1、第一步,配置command.php文件2、第二步,建立命令类文件注意:该文件中代码,从文档中粘,以防写错。名字啥的都不用改,就改命名空间 和 定义命令、执行命令需要的东西3、测试-命令帮助-命令行下运行4、手动执行 刚定义的Order命令注意:linux严格区分大小写哦~5、自动执行 该任务该指令每分钟执行一次...原创 2018-04-28 00:46:25 · 3632 阅读 · 0 评论 -
*【功能点】php用阿里大鱼发短信
需求:1、库存低于n自动给商家发短信,通知商家进货。2、通过切换手机号,可以控制是给老板还是给库管发短信该功能用的是thinkcmf二开,用到了一个类库,请点击下载html代码:<div> <br/> <b>设置库存量,自动发送短信</b><br/> 发给给谁:<input type...原创 2018-05-17 21:56:28 · 624 阅读 · 0 评论 -
*【功能点】php商品列表页的搜索
控制器代码://搜索查询public function sousuo(){ $param = $this->request->param(); //接收到的是空数组,如果带上查询条件就不是空的了 //查数据 $stockModel = new SellModel(); $res = $stockModel->...原创 2018-05-17 21:24:02 · 2041 阅读 · 0 评论 -
*【功能点】php导出excel
/** * 商品库存excel导出 */public function excel(){ //查询出要导出的数据 $data = $this->request->param('ids/a'); //接收参数(用户勾选多个id) $model = new StockModel(); $res = $model-&g...原创 2018-05-17 21:05:58 · 230 阅读 · 0 评论 -
*【功能点】php生成商品二维码
该项目是thinkcmf二开,使用了一个qrcode的类库点击下载类库/** * 单个商品生成二维码 * 该功能有点类似于电子价签,扫码后能看到商品信息 */public function qrCode(){ //查询要生成二维码的数据 $id = $this->request->param('id'); //接收参数 ...原创 2018-05-17 20:55:35 · 998 阅读 · 0 评论 -
*php-cgi如何使用(php cli模式执行php文件)
需求:如果使用浏览器,发邮件100万封邮件。这个时候浏览器就不能动了要一直在发邮件这个页面打开着,因为你一切换页面发邮件这个任务就不会执行了。而且有什么异常出现任务挂了,可能会导致给某个用户发好几封。Php的CLI模式的好处是,执行php程序,不需要浏览器,也不需要启动服务器什么是Php的cli呢??相信下图大家都不陌生,只是不知道如何使用而已win需要通过cmd来...原创 2018-03-03 15:57:48 · 9101 阅读 · 2 评论 -
*【内置】总结持续更新--php常用内置函数
使用思路:根据功能找函数,如 要做个文件管理器的话,首先确定使用和目录/文件相关的函数,画出来html页面看都有什么功能,再一次分析这些功能的实现常量手册中的位置:附录-》保留字列表-》预定义常量1、PHP_EOL //换行2、PHP_SAPI //判断是使用命令行还是浏览器执行的,如果 PHP_SAPI==’cli’ 表示是在命令行下执行 和php_sapi_name...原创 2017-11-04 20:09:23 · 2109 阅读 · 0 评论 -
*超简单开发自己的php框架一点都不难!!
github的地址:https://github.com/yxgg/-frame你可以照着这思路先在脑海里构思下,然后看看源代码,在自己模仿着写(哈哈 大家不都是从模仿到会做嘛儿)出发点:我个人理解 自己开发框架也是锻炼原生的一种手段。写完之后看别的框架也方便多了。如果你遇到一个没有文档或文档极少的框架,可以跟着这个思路摸索着补充。或干脆拿着原生上来就是干,我刚接触yii2的时候就是...原创 2018-02-21 21:37:16 · 15204 阅读 · 0 评论 -
*php如何开启短标签
什么是短标签??我们常见的写法是<?php?>短标签的写法是:<? /*程序操作*/ ?><?=/*函数*/?> 有没有发现,比常见写法省略掉了php,或也可以说成是用=替代了php如何开启??在php.ini(配置文件)中设置为on:short_open_tag = On...原创 2018-01-07 14:09:13 · 2318 阅读 · 0 评论 -
*【封装php函数】--处理数组
/** * 合并时用的,二维数组,根据某个Key进行去重 * @param $arr 要去重的二维数组 * @param $key 根据哪个key去重 * @author yzm */ function assoc_unique(&$arr, $key){ $rAr=array(); for...原创 2017-12-15 19:48:05 · 390 阅读 · 0 评论 -
*【封装php函数】-处理数字
/** * 生成指定位数的 随机数 * @param int $length 默认生成4位 * @return int */function generate_code($length = 4) { return rand(pow(10,($length-1)), pow(10,$length)-1);}...原创 2017-11-01 21:50:17 · 244 阅读 · 0 评论 -
*【封装php函数】--处理时间
/*****************************动态的*************************************/$j = date('Y-m-d H:i:s',time()); //今日0点时间戳$m =date('Y-m-d H:i:s',strtotime($j) + 3600*24); //明日0点时间戳 echo $j."<br/>"...原创 2017-11-01 21:52:58 · 370 阅读 · 0 评论 -
*【封装php函数】--处理字符串
/** * 字符串去掉下划线&&首字符转成大写 * @param $str 待转换的字符串 * @return string */function myucfirst($str){ $arr = explode('_',$str); //去掉_ $temp = ''; //如果下划线和大于1个就循环去掉下划线 && 首字母转...原创 2017-11-01 21:36:51 · 653 阅读 · 0 评论