- 博客(147)
- 资源 (11)
- 收藏
- 关注
原创 TP5学习(十):日志
一、介绍日志记录由\think\Log类完成,主要完成日志记录和跟踪调试。由于日志记录了所有的运行错误,因此养成经常查看日志文件的习惯,可以避免和及早发现很多的错误隐患。日志初始化在使用日志记录之前,首先需要初始化日志类,指定当前使用的日志记录方式。Log::init([ 'type' => 'File', 'path' => APP_PATH.'lo...
2019-05-03 21:53:26 1994
原创 TP5学习(九):模板
一、模板定位模板文件定义每个模块的模板文件是独立的,为了对模板文件更加有效的管理,ThinkPHP对模板文件进行目录划分,默认的模板文件定义规则是:视图目录/控制器名(小写)/操作名(小写)+模板后缀默认的视图目录是模块的view目录,框架的默认视图文件后缀是.html。模板渲染规则模板渲染使用\think\View类的fetch方法,渲染规则为:模块@控制器/操作模板文...
2019-05-03 21:39:03 1603
原创 TP5学习(八):视图
一、视图实例化视图功能由\think\View类配合视图驱动(模板引擎)类一起完成,目前的内置模板引擎包含PHP原生模板和Think模板引擎。因为新版的控制器可以无需继承任何的基础类,因此在控制器中如何使用视图取决于你怎么定义控制器。继承\think\Controller类如果你的控制器继承了\think\Controller类的话,则无需自己实例化视图类,可以直接调用控制器基础类封装的...
2019-05-03 20:52:18 893
原创 TP5学习(七):模型
一、定义定义一个User模型类:namespace app\index\model;use think\Model;class User extends Model{}默认主键为自动识别,如果需要指定,可以设置属性:namespace app\index\model;use think\Model;class User extends Model{ prot...
2019-05-03 20:38:22 3160
原创 TP5学习:数据库(续)
一、查询事件从5.0.4+版本开始,增加了数据库的CURD操作事件支持,包括:查询事件仅支持find、select、insert、update和delete方法。注册事件使用下面的方法注册数据库查询事件Query::event('after_insert','callback');Query::event('before_select',function($options,$quer...
2019-05-03 19:31:54 441
原创 TP5学习(六):数据库
TP内置了抽象数据库访问层,把不同的数据库操作封装起来,只需要使用公共的Db类进行操作,而无需针对不同的数据库写不同的代码和底层实现,Db类会自动调用相应的数据库驱动来处理。采用PDO方式,目前包含了Mysql、SqlServer、PgSQL、Sqlite等数据库的支持。一、连接数据库**配置文件定义 **常用的配置方式是在应用目录或者模块目录下面的database.php中添加下面的...
2019-05-03 15:13:43 1480
原创 TP5学习(五):请求
一、请求信息如果要获取当前的请求信息,可以使用\think\Request类,除了$request = Request::instance();也可以使用助手函数$request = request();当然,最方便的还是使用注入请求对象的方式来获取变量。获取URL信息$request = Request::instance();// 获取当前域名echo 'domai...
2019-05-03 13:14:52 1446
原创 TP5学习(四):控制器
TP5的控制器定义比较灵活,可以无需继承任何的基础类,也可以继承官方封装的\think\Controller类或其他的控制器类。1、控制器定义一个典型的控制器类定义如下:namespace app\index\controller;class Index { public function index() { return 'index'; }...
2019-05-03 09:34:09 1053
原创 TP5学习(一)
1、目录结构project 应用部署目录├─application 应用目录(可设置)│ ├─common 公共模块目录(可更改)│ ├─index 模块目录(可更改)│ │ ├─config.php 模块配置文件│ │ ├─common.php 模块函数文件│ │ ├─con...
2019-04-28 23:37:41 2700
转载 模板引擎原理
我们在php开发中,视图层view是不允许有php代码来操作数据库之类的来获取数据的,我们一般都会在控制器层controller,就已经把视图层要展示的数据准备好,方便视图层直接用来展示。smarty模板技术,可以让数据和视图进行分离,让视图中不能直接出现php代码。这样的话,让前段页面的开发和后台数据的开发,可以双管齐下,同时进行了。smarty模板的使用比较简单,主要有两个非常核心的函数。...
2019-04-28 22:39:38 494
原创 微信支付
微信支付官方文档微信支付中我们平时用得比较多的有:JSAPI支付:基于微信内部生态,如公众号等建立的支付系统Native支付:基于商品本身,完成交易的支付APP支付:基于手机APP,调起微信支付H5支付:从手机浏览器,调起微信支付小程序支付:从小程序调起微信支付,与JSAPI、JSSDK类似一定要区分不同应用场景,采用对应的接入方式,否则会有很多错误产生。...
2019-04-28 14:17:44 444 1
转载 python基本数据类型学习
在了解基本数据类型的时候,我们需要了解基本数据类型有哪些?数字int、布尔值bool、字符串str、列表list、元组tuple、字典dict等,其中包括他们的基本用法和其常用的方法,这里会一一列举出来,以便参考。然后我们还需要了解一些运算符,因为这些基本数据类型常常会用于一些运算等等。一、运算符运算通常可以根据最终获得的值不同,可以分两类,即结果为具体的值,结果为bool值,那么哪些结果为具...
2019-04-11 18:06:40 343
原创 php常见四种排序算法
<?php/** * @Function bubbleSort 冒泡排序 * @param $arr * @return mixed * @Author: Robin * @Date: 19-4-8 * @Time: 下午5:32 * @Return: mixed */function bubbleSort ($arr){ $len = count($arr);...
2019-04-08 17:36:37 284
原创 Selenium库
Selenium库1、Seleniumselenium 是一套完整的web应用程序测试系统,包含了测试的录制(selenium IDE),编写及运行(Selenium Remote Control)和测试的并行处理(Selenium Grid)。Selenium的核心Selenium Core基于JsUnit,完全由JavaScript编写,因此可以用于任何支持JavaScript的浏览器上...
2019-04-04 09:55:45 875 1
原创 request库
request库requests是用python语言基于urllib编写的,采用的是Apache2 Licensed开源协议的HTTP库。requests是python实现的最简单易用的HTTP库,建议爬虫使用requests库。1、总体功能演示:eg1:import requestsresponse = requests.get("https://www.baidu.com")...
2019-04-04 09:55:02 1035
原创 request库
request库requests是用python语言基于urllib编写的,采用的是Apache2 Licensed开源协议的HTTP库。requests是python实现的最简单易用的HTTP库,建议爬虫使用requests库。1、总体功能演示:eg1:import requestsresponse = requests.get("https://www.baidu.com")...
2019-04-03 18:19:24 3994
原创 PyQuery库
PyQuery库PyQuery库也是一个非常强大又灵活的网页解析库,PyQuery 是 Python 仿照 jQuery 的严格实现。语法与 jQuery 几乎完全相同,所以不用再去费心去记一些奇怪的方法了。1、初始化初始化的时候一般有三种传入方式:传入字符串,传入url,传入文件字符串初始化eg1:html = '''<div> <ul> ...
2019-04-03 17:41:01 203
原创 beautifulsoup库
beautifulsoup库eg1:from bs4 import BeautifulSouphtml = '''<html><head><title>The Dormouse's story</title></head><body><p class="title"><b>The Dorm...
2019-04-03 16:57:42 208
原创 爬虫相关知识点
1、进程程序并不能单独地运行,只有将程序装载到内存中,系统为他分配资源才能运行,而这种执行的程序就称之为进程。程序和进程的区别在于:程序是指令的集合,它是进程的静态描述文本;进程是程序的一次执行活动,属于动态概念。例如我们写一个hello程序,当这个程序在操作系统上运行的时候,操作系统会给我们一种假象,好像系统上就这一个程序在运行。程序看上去是独占的使用处理器,主存,和IO设备,处理器看上去就...
2019-03-27 14:38:59 183
转载 PHP统计目录下的文件总数及代码行数(去除注释及空行)
<?php/** * @author xiaoxiao <x_824@sina.com> 2011-1-12 * @link http://xiaoyaoxia.cnblogs.com/ * @license * 统计目录下的文件行数及总文件数··去除注释 */set_time_limit(0);$obj = new CaculateFiles();//如果设置...
2019-03-21 18:29:24 292
转载 服务器部署:利用WebHook实现PHP自动部署Git代码
类型coding 钩子github 钩子环境服务端:阿里云虚拟主机(Ubuntu16.04)coding 自动部署 WebHook3.0Windows 10 开发环境部署服务器虚拟主机配置coding 代码托管配置本地代码提交服务端配置1、创建web服务器用户目录这里以www用户为例,不同的环境请根据自己环境自行修改sudo mkdir /var/www/.sshsu...
2019-03-21 10:17:06 954
转载 PHP队列的实现,看完秒懂
队列是一种特殊的线性表,它只允许在表的前端,可以称之为front,进行删除操作;而在表的后端,可以称之为rear进行插入操作。队列和堆栈一样,是一种操作受限制的线性表,和堆栈不同之处在于:队列是遵循“先进先出”原则,而堆栈遵循的是“先进后出”原则。队列进行插入操作的端称为队尾,进行删除操作的称为队头,只允许在队尾进行插入操作,在队头进行删除操作。队列的数据元素又称为队列元素,在队尾中插入一个元素...
2019-03-21 10:10:16 2649 2
原创 matlab连接数据库
1、安装mysql驱动程序包mysql-connector-java-5.1.46-bin.jar下载链接①:将mysql-connector-java-5.1.7-bin.jar文件拷贝到…\MATLAB\R2009a\java\jar\toolbox②:到…\MATLAB\R2009a\toolbox\local目录下,找到classpath.txt文件,打开,并添加用来加载mysql的...
2019-03-13 12:12:10 5856
原创 windows系统通过计划任务来执行定时任务
1、进入控制面板2、进入管理工具3、选择任务计划程序4、创建任务5、设置常规信息6、新建触发器7、设置计划任务执行频率其中重复任务间隔是可以下拉修改的,五分钟也可改成1分钟8、设置操作内容在程序或脚本这里,可以选择启动某个程序,也可选择执行某脚本,一般为.bat批处理脚本9、设置与条件10、查看正在运行的计划任务11、.bat脚本示例"C:\php...
2019-03-12 12:02:30 644
原创 php json_encode乱码及url传参中的一些小坑
在编码过程中、经常会用到json_encode来处理中文、但是、出现一个问题、中文都会被转码、变为” \u**** ”的格式、如何避免被转码、1、PHP的版本为5.4以上;echo json_encode( '中文' ); // "\u4e2d\u6587"echo json_encode( '中文', JSON_UNESCAPED_UNICODE ); // "中文"2、先把汉字url...
2019-03-11 15:23:19 1425
转载 实用】PHP实现下载与压缩文件的一些方法的封装与整理
一、PHP实现打包zip并下载功能$file_template = FCPATH.'canddata/cand_picture.zip';//在此之前你的项目目录中必须新建一个空的zip包(必须存在)$downname = $card.'.zip';//你即将打包的zip文件名称$file_name = FCPATH.'canddata/'.$card.'.zip';//把你打包后zip所存...
2019-03-11 09:08:21 345
转载 Nginx配置文件(nginx.conf)配置详解
Nginx 总的 配置文件 位置: /usr/local/nginx/conf/nginx.conf一、正则表达式匹配~ 为区分大小写匹配~* 为不区分大小写匹配!~和!~*分别为区分大小写不匹配及不区分大小写不匹配二、文件及目录匹配,其中-f和!-f用来判断是否存在文件-d和!-d用来判断是否存在目录-e和!-e用来判断是否存在文件或目录-x和!-x用来判断文件是否可执行...
2019-03-11 09:05:02 3453
转载 PHP程序员路径发展规划
阶段1:基础阶段(基础PHP程序员)重点:把LNMP搞熟练(核心是安装配置基本操作)目标:能够完成基本的LNMP系统安装,简单的配置维护;能够做基本的简单系统的PHP开发能够在PHP中型系统中支持某个功能模块的开发知识点掌握:Linux:基本命令、操作、启动、基本服务配置(包括rpm安装文件,各种服务配置等);会写简单的shell脚本和awk/sed 脚本命令等。Nginx...
2019-03-01 15:16:14 165
转载 PHP-线程安全与非线程安全版本的区别
Windows版的PHP从版本5.2.1开始有Thread Safe(线程安全)和None Thread Safe(NTS,非线程安全)之分,这两者不同在于何处?到底应该用哪种?这里做一个简单的介绍。从2000年10月20日发布的第一个Windows版的PHP3.0.17开始的都是线程安全的版本,这是由于与Linux/Unix系统是采用多进程 的工作方式不同的是Windows系统是采用多线程的工...
2019-02-19 15:30:32 433
原创 AES加密解密
class AES{ private $screct_key = 'screct_key'; /** * 加密方法 * @param string $str * @return string $this->config->item('img_url') */ function enjiami($str){ ...
2019-02-15 10:11:46 563
原创 页面重定向、页面回退、禁止表单外部提交、获取设备类型
页面重定向:function jumpurl($url,$msg=''){ if(empty($msg)) { header("Location: " . $url); }else{ echo "&lt;script&gt; "; echo "alert('$msg');"; ech
2019-02-15 10:07:37 380
原创 php时间日期
时间戳:time();//当前时间戳strtotime('2019-01-01');//指定日期的时间戳strtotime("-1 day"); //昨天的时间戳strtotime(date('Y-m-d', strtotime("this week Monday")));//本周一的时间戳strtotime(date('Y-m-01'));//本月月初的时间戳strtotime(da...
2019-02-13 10:40:09 244
原创 LRU(least recently used)算法浅析
LRU(Least recently used)算法,顾名思义:最近最少使用。LRU-1算法算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”。最常见的实现是使用一个链表保存缓存数据,如下图所示:这个链表即是我们的缓存结构,缓存处理步骤为:1、初始化一个定长的链表,用于表示缓存数据组成;2、当请求进来时,进行缓存,并按请求的先...
2019-01-29 15:17:56 2994
原创 从头学习swoole
Swoole是一个PHP的C扩展,可用来开发PHP的高性能高并发TCP/UDP Server。Swoole的网络IO部分基于epoll/kqueue事件循环,是全异步非阻塞的。 业务逻辑部分使用多进程同步阻塞方式来运行。这样既保证了Server能够应对高并发和大量TCP连接。又保证业务代码仍然可以简单的编写。可以说swoole的出现为php续上了一命,swoole可谓是所有phper打家劫舍必...
2019-01-28 18:17:20 1683
原创 swoole服务器如何做到无人值守100%可用
在某些情况下,如系统负载过大swoole无法申请到内存而挂掉、swoole底层发生段错误、Server占用内存过大被内核Kill,或者被某些程序误杀。那swoole-server将无法提供服务,导致业务中断,公司收入出现损失。有一个非常有效并且在BAT等大型公司常用的方案是crontab重启监控。原理是每1分钟执行一次shell脚本,检测server的master进程是否存活,如果存在则跳过。...
2019-01-28 15:05:35 534
转载 交易系统的消息服务如何保证100%可靠
分布式应用中,消息系统被大量使用,主要原因有:逻辑解耦发送方和接收方不需要相互知道对方,一个只管发,一个只管收,大大简化了处理逻辑。适配动态流量如果发送方发送速度快于接收方的接收速度,消息系统就可以暂时将无法处理的消息缓存起来,让接收方慢慢处理。没有消息系统时,发送方就不得不配合接收方降低处理速度,从而拖慢了整个系统的性能。那么消息系统能保证消息100%可靠到达吗?答案是否定的。因...
2019-01-24 23:29:19 778
原创 【python脚本】-刷CSDN博客流量
本脚本可以通过打开CSDN博客页面,来增加博客访问量。前置条件:安装了python安装了浏览器内核,我这里用的是chrome的脚本如下:#!/usr/bin/evn python# -*- encoding: utf-8 -*-"""@File :blog.py@Time :2019/1/22 8:42@Author :Robin@Desc"""from s...
2019-01-23 16:56:58 527
转载 MySQL的四种事务隔离级别
一、事务的基本要素(ACID)1、原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有发生一样。也就是说事务是一个不可分割的整体,就像化学中学过的原子,是物质构成的基本单位。2、一致性(Consistency):事务开始前和结束后,数据库的完整性约束没有被破坏 。比如A向B转账,不可...
2019-01-23 11:17:38 137
gitlab安装包 gitlab-ce-10.0.0-ce.0.el7.x86-64.rpm
2023-05-14
PayDemo支付demo
2018-10-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人