自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

技术的搬运工

从事编程工作多年,对技术有一些经验,希望与更多人分享

  • 博客(72)
  • 收藏
  • 关注

原创 理解什么是CGI

CGI: CGI全称是“公共网关接口”(Common Gateway Interface),HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上。理解:web server(比如说nginx) 只是内容的分发者。如果请求/index.html,那么web server会去文件系统中找到这个文件,发送给浏览器,这里分发的是静...

2018-03-31 02:40:48 795

原创 PHP 文件并发操作(文件锁)

默认的:PHP的文件操作函数,不是阻塞状态,而是自由操作状态。条件:当需要一个脚本操作而需要阻塞另外的脚本操作时,需要用到文件锁。锁操作流程:先加锁,检测锁是否加成功,如果成功再使用!锁定类型:读锁: s-Lock(share-lock)共享锁,读操作前,期望增加的锁定。导致,允许并发读,阻塞额外的写操作。写锁: x-lock(exclusive-l...

2018-03-30 16:24:57 7140

原创 PHP $_SERVER的使用总结

路径信息的获取:'PHP_SELF':当前执行脚本的文件名,与 document root 有关。例如,在地址为 http://example.com/foo/bar.php 的脚本中使用 $_SERVER['PHP_SELF'] 将得到 /foo/bar.php。 'SCRIPT_NAME':包含当前脚本的路径。这在页面需要指向自己时非常有用。echo '$_SERVER["PHP_S...

2018-03-29 18:13:53 495

原创 php 传值和引用的理解

介绍: 每个php变量存在一个叫"zval"的变量容器中。一个zval变量容器,除了包含变量的类型和值,还包括两个字节的额外信息。第一个是"is_ref",是个bool值,用来标识这个变量是否是属于引用集合(referenceset)。通过这个字节,php引擎才能把普通变量和引用变量区分开来,由于php允许用户通过使用&来使用自定义引用,zval变量容器中还有一个内部引用计数机制,...

2018-03-28 16:11:31 488

原创 js 获取dom元素的八种方法

1、通过css选择器获取一个元素(querySelector)2、通过选择器获取一组元素(querySelectorAll)方法一样,只是可以获取css选择器匹配的。如果你需要返回所有的元素,请使用。方法仅仅返回匹配指定选择器的。

2018-03-28 00:24:21 18830 1

原创 js 事件冒泡和事件捕获

介绍: 事件传递有两种方式:冒泡与捕获。事件冒泡 :内部元素的事件会先被触发,然后再触发外部元素例: <body> <div id="maopao" style="background-color:red;height:100px;width:100px;padding:30px"> <div class="ma...

2018-03-28 00:02:30 293

原创 HTML meta标签的使用

介绍: 用来设置元数据, 这些元数据将服务于浏览器(如何布局或重载页面),搜索引擎和其它网络服务。属性:主要有name和http-equiv属性name的使用 name属性主要用于描述网页,比如网页的关键词,描述等。与之对应的属性值为content,content中的内容是对name填入属性名称的具体描述,便于搜索引擎抓取。类似于关联组中键和值得关系keywor...

2018-03-27 19:43:03 700 1

原创 php 三种文件下载的实现

1、直接添加文件链接<button> <a href = "http://localhost/down.zip"> 下载文件</button>点击该按钮下载: 2、传递参数查找并跳转到下载链接传递参数:<button> <a

2018-03-27 09:26:56 95151 4

原创 php 目录操作

递归获取目录内容递归点:读取到的文件为目录时。 1、先读取某个目录内容(不包含子目录的): 2、判断每个读到的文件是否为目录,如果为目录,递归调用,并将当前子目录作为参数传递。3、缩进方式输出结果 递归调用深度,就是该函数确定的文件的缩进级别! 每当递归调用一次,则缩进级别增加1级。 //str_repeat:重复一个字符串,返回 inpu...

2018-03-26 15:11:34 160

原创 PHP 目录的函数使用

创建目录1、mkdir:尝试新建一个由 pathname 指定的目录。bool mkdir ( string $pathname [, int $mode = 0777 [, bool $recursive = false [, resource $context ]]] )默认不支持递归创建:第三个参数写true: 提示:第二个在windows被忽略,在l...

2018-03-26 13:24:39 419

原创 mysql数据库的主从复制和主主复制实践

准备:两台装上phpstudy集成环境的计算机(过程忽略)固定两台电脑的ip(因为mysql数据库是通过ip进行连接,自动获取ip会导致下次重启电脑时,连接就会失效)步骤1:找到网络连接信息 步骤2:创建文本文件,将连接信息记录下来 步骤3:将文本记录信息复制到ipv4属性里面 步骤4:查看详细信息,配置成功 扩展: DHCP(Dynamic Host...

2018-03-25 00:44:10 2441

原创 php.ini 常用配置

资源限制max_execution_time integer也可以用函数设置set_time_limit ( int $seconds )这设置了脚本被解析器中止之前允许的最大执行时间,单位秒。 这有助于防止写得不好的脚本占尽服务器资源。 默认设置为 30。 从命令行运行 PHP 时,默认设置为 0。max_execution_time 仅仅只影响脚本本身运行的时间。任...

2018-03-23 16:20:11 383

原创 tp中composer的使用

在window上安装composer.exe; 参考:https://jingyan.baidu.com/article/c45ad29c2eb01d051753e2be.html环境变量配置: 查看环境变量path中是否包含PHP 和 composer 路径值,没有就单独进行配置 修改包来源 由于众所周知的原因,国外的网站连接速度很慢。因此安...

2018-03-22 13:59:37 3863

原创 mysql 分区/分表

一个数据表里边可以存储许多记录信息,如果一个数据表里边存储的数据非常多(例如 淘宝商城的商品表),这样该商品表的相关工作量就很多(数据的增、删、改、查),负载(工作量)高到一定程度,会造成把表锁死的情况发生。解决方案: 为了降低商品表的负载/工作量,可以给该表拆分为多个数据表。这样每个数据表的工作量会有多降低。 Mysql5.1版本之后就支持分表分区的设计。宏观拆分...

2018-03-21 22:20:02 173

原创 file_get_content的get和post请求

上下文选项介绍: PHP提供了多种上下文选项和参数,可用于所有的文件系统或数据流封装协议。上下文由 stream_context_create()创建。选项可通过stream_context_set_option()设置,参数可用stream_context_set_params()设置。多种上下文:(请参考php手册) 获取上下文://http上下文$pos...

2018-03-21 18:51:13 5413

原创 socket 和 http 的区别

网络分层HTTP协议:简单对象访问协议,对应于应用层 ,HTTP协议是基于TCP连接的tcp协议: 对应于传输层ip协议: 对应于网络层 分析: Socket是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API),通过Socket,我们才能使用TCP/IP协议,因此socket连接是应用层的一个操作;特点 So...

2018-03-21 11:03:38 395

原创 socket (套接字)是什么

概念: 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。建立网络通信连接至少要一对端口号(socket)。socket本质是编程接口(API),对TCP/IP的封装,TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口;理解: socket 用于描述IP地址和端口,是一个通信链的句柄,可以用来实现不同虚拟...

2018-03-21 04:48:15 919

原创 mysql 复制表

复制表的结构、索引 使用 SHOW CREATE TABLE 命令获取创建数据表(CREATE TABLE) 语句,该语句包含了原数据表的结构,索引等。 复制创建数据表命令,修改数据表名称,执行命令 数据表复制成功,结构和索引与源数据表相同复制数据 拷贝数据表的数据你可以使用 INSERT INTO… SELECT 语句来实现。INS...

2018-03-20 18:07:01 239

原创 mysql 缓存

查询缓存设置 一条查询sql语句有可能获得很多数据,并且有一定的时间消耗。 如果该sql语句被频繁执行获得数据(这些数据还不经常发生变化),为了使得每次获得的信息速度较快,就可以把“执行结果”给缓存起来,供后续的每次使用。查看并开启查询缓存 缓存大小为0,不能缓存: 没有设置缓存之前,每次查询都消耗2多秒时间: 现在就开启缓存,设置缓存空...

2018-03-20 01:51:27 266

原创 索引index(2)

索引设计依据要估算每个数据表全部的查询sql语句类型分析、统计每个sql语句的特点(where/order by/or等等)原则: 被频繁执行的sql语句要设置执行时间比较长的sql语句(可以统计)业务逻辑比较重要的sql语句(例如支付宝2小时内答应返现的业务逻辑)前缀索引 设计索引的字段,不使用全部内容,而只使用该字段前边一部分内容。原理:如果字...

2018-03-20 01:05:12 567

原创 索引index(1)

索引本身是一个独立的存储单位,在该单位里边有记录着数据表某个字段和字段对应的物理空间。如下: 有了索引,我们根据索引为条件进行数据查询速度就非常快索引本身有”算法”支持,可以快速定位我们要找到的关键字(字段)索引字段与物理地址有直接对应,帮助我们快速定位要找到的信息,一个数据表的全部字段都可以设置索引索引类型四种类型: 类型 英文名...

2018-03-19 01:08:38 1558

原创 mysql 逆犯式

例: 两个数据表:商品表Goods、分类表CategoryGoods: (商品表)id name cat_id price101 iphone6s 2003 6000204 海尔冰箱 4502 2000......Category: (分类表)cat_id name 2003 手机450...

2018-03-18 19:37:53 139

原创 http响应头

名称 含义 示例 Accept-Ranges 表明服务器是否支持指定范围请求及哪种类型的分段请求 Accept-Ranges: bytes Age 从原始服务器到代理缓存形成的估算时间(以秒计,非负) Age: 12 Allow 对某网络资源的有效的请求行为,不允许则返回405 Allow: GET, HEAD Cache...

2018-03-18 13:34:37 830

原创 http 请求头

名称 含义 示例 Accept 指定客户端能够接收的内容类型 Accept: text/plain, text/html Accept-Charset 浏览器可以接受的字符编码集。 Accept-Charset: iso-8859-5 Accept-Encoding 指定浏览器可以支持的web服务器返回内容压缩编码类型。 Acce...

2018-03-18 13:23:52 222

原创 http状态码表

是用以表示网页服务器超文本传输协议响应状态的3位数字代码,所有状态码的第一个数字代表了响应的五种状态之一。

2018-03-18 05:11:30 663 1

原创 php header()函数的使用

1、 跳转页面header('Location:'.$url); //Location和":"之间无空格。 2、 声明content-typeheader('content-type:text/html;charset=utf-8'); 3、 返回response状态码header('HTTP/1.1 404 Not Found'); ...

2018-03-18 03:41:55 4223

原创 php 文件上传

表单提交 表单中的数据类型共两种:字符串型和文件型。 通过表单的enctype属性告知浏览对请求数据做什么样的处理例:<form enctype="multipart/form-data" action="__URL__" method="POST"> <!-- MAX_FILE_SIZE 必须放在文件输入字段之前 --> &l...

2018-03-17 03:53:46 232

原创 php 生成器

作用: 生成器提供了一种更容易的方法来实现简单的对象迭代,相比较定义类实现 Iterator 接口的方式,性能开销和复杂性大大降低。实现方式: 当一个生成器被调用的时候,它返回一个可以被遍历的对象.当你遍历这个对象的时候(例如通过一个foreach循环),PHP 将会在每次需要值的时候调用生成器函数,并在产生一个值之后保存生成器的状态,这样它就可以在需要产生下一个值的时候恢复...

2018-03-16 13:52:51 234

原创 flash 跨域访问

原理: flash访问另一个域的数据,flash player 会自动从该域加载策略文件(crossdomain.xml),如果访问的数据所在的域名在策略文件中设置过允许访问,则该域的数据即可正常访问。例:<?xml version="1.0"?> <!--http://baidu.com/crossdomain.xml--> <cros...

2018-03-16 11:23:10 1432

原创 UTF-8有BOM和无BOM的区别

BOM(Byte Order Mark),字节顺序标记,出现在文本文件头部,Unicode编码标准中用于标识文件是采用哪种格式的编码。

2018-03-15 22:50:31 76170 3

原创 javascript 中encodeURI与encodeURIComponent方法的区别

统一资源标识符(Uniform Resource Identifier,或URI)是一个用于标识某一互联网资源名称的字符串。web上可用的每种资源 -HTML文档、图像、视频片段、程序等 - 由一个通用资源标识符(Uniform Resource Identifier, 简称”URI”)进行定位。 方法 作用 encodeURI() 编码URI dec...

2018-03-15 18:04:13 215

原创 tp框架中的钩子和行为

概念行为: 在应用执行过程中的一个操作,例如路由检测、静态缓存等钩子: 行为发生作用的位置,例如在应用执行前或模板输出之后使用分析设置钩子:Hook::listen('钩子名称','参数','是否只有一次有效返回值');think\Hook.php/** * 监听标签的行为 * @access public * ...

2018-03-15 03:56:15 1059

原创 mysql字段类型选择

尽量少的占据存储空间整型时间类型(选择准确的类型) 类型 含义 time() 时分秒 datetime() 年月日 时分秒 year() 年份 date() 年月日 timestamp() 时间戳(1970-1-1到现在经历的秒数)数据的整合最好固定长度char(字符数)...

2018-03-14 18:37:05 343

原创 php 密码加密(password_hash)

只要不设置,它会自动创建安全的盐值。就像以上提及的,在 PHP 7.0 提供 salt选项会导致废弃(deprecation)警告。未来的 PHP 发行版里,手动提供盐值的功能可能会被删掉。注意,该常量会随着 PHP 加入更新更高强度的算法而改变。所以,使用此常量生成结果的长度将在未来有变化。因此,数据库里储存结果的列可超过60个字符(最好是255个字符)。2、 在自己的服务器上做基准测试,调整 cost 参数直至函数时间开销小于 100 毫秒(milliseconds)。

2018-03-14 15:51:08 10289 2

原创 php 抽象类

PHP 5 支持抽象类和抽象方法。定义为抽象的类不能被实例化。任何一个类,如果它里面至少有一个方法是被声明为抽象的,那么这个类就必须被声明为抽象的。被定义为抽象的方法只是声明了其调用方式(参数),不能定义其具体的功能实现。 注意:继承一个抽象类的时候,子类必须定义父类中的所有抽象方法;另外,这些方法的访问控制必须和父类中一样(或者更为宽松)。方法的调用方式必须匹配,即类型和所...

2018-03-14 14:18:14 197

原创 php 后期静态绑定(self、static、parent等)

后期静态绑定工作原理是存储了在上一个“非转发调用”(non-forwarding call)的类名。当进行静态方法调用时,该类名即为明确指定的那个(通常在 :: 运算符左侧部分);当进行非静态方法调用时,即为该对象所属的类。 所谓的“转发调用”(forwarding call)指的是通过以下几种方式进行的静态调用:self::,parent::,static:: 以及f...

2018-03-13 23:45:22 313

原创 tp框架中的facade

门面( Facade) 门面为容器中的类提供了一个静态调用接口,相比于传统的静态方法调用, 带来了更好的可测试性和扩展性,你可以为任何的非静态类库定义一个 facade 类。/thinkphp/library/think/Facade.php // 调用实际类的方法 public static function __callStatic($method, $par...

2018-03-13 22:52:00 2164

原创 php 反射

PHP 5 具有完整的反射 API,添加了对类、接口、函数、方法和扩展进行反向工程的能力。 此外,反射 API 提供了方法来取出函数、类和方法中的文档注释。 tp框架中反射的使用:ReflectionClass::__construct — 构造一个 ReflectionClass 类public ReflectionClass::__construct ( mixed $...

2018-03-13 17:45:37 196

原创 PHP标准库 (SPL)

SPL是用于解决典型问题(standard problems)的一组接口与类的集合。

2018-03-13 17:01:18 477

原创 tp依赖的自动注入

自动注入容器的更多使用主要用于依赖注入,和5.0自动注入的方式有所区别,类的绑定操作不再使用Request 对象而是直接注册到容器中,并且支持模型事件和数据库事件的依赖注入,依赖注入会首先检查容器中是否注册过该对象实例,如果有的话就会自动注入...

2018-03-13 00:50:41 1023

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除