- 博客(56)
- 问答 (1)
- 收藏
- 关注
原创 PHP学习笔记——加密解密
一、MD5算法MD5消息摘要算法(Message Digest Algorithm)是R.Rivest设计的,它对输入的任意长度的消息进行运算,产生一个128位的消息摘要。随着穷举攻击和密码分析的发展,MD5算法已经不再那么流行了。1、算法原理1)数据填充填充消息使其与448模512同余(长度 ≡ 448 mod 521),即填充后的消息长度是比512的倍数仅小64位的数。即使消息长度本身...
2019-01-23 17:06:02
571
原创 PHP学习笔记——文件系统
一、文件处理1、打开文件resource fopen ( string filename , string mode [, bool use_include_path = false [, resource context ]] )该函数打开文件或者 URL,将 filename 指定的名字资源绑定到一个流上。如果 filename 是 “scheme://…” 的格式,则被当成一个 UR...
2019-01-22 16:21:15
420
原创 PHP学习笔记——会话管理
一、cookie管理1、介绍cookiecookie是在HTTP协议下,将服务器传递给浏览器的少量数据保存到用户浏览器的一种方式,通过这种方式,即使在浏览器被关闭和连接中断的情况下,用户仍然可以维护状态数据。cookie是保存在用户硬盘上的由字符串组成的小文本文件,其命名格式如下:用户名@网站地址[数字].txtcookie中的内容大多警告了加密处理,因此,表面上看来只是一些字母和数字组合...
2019-01-18 11:43:09
414
原创 PHP学习笔记——日期和时间(二)
1、设置地区信息string setlocale ( int category , array locale )参数 category 命名常量指定的受区域设置的功能类别:LC_ALL 所有的设置LC_COLLATE 字符串比较, 详见 strcoll()LC_CTYPE 字符串的分类与转换, 参见例子 strtoupper()LC_MONETARY 等同 localeconv()L...
2019-01-17 16:01:44
274
原创 PHP学习笔记——日期和时间(一)
1、获取指定日期的时间戳int mktime ([ int hour = date(“H”) [, int minute = date(“i”) [, int second = date(“s”) [, int month = date(“n”) [, int day = date(“j”) [, int year = date(“Y”) [, int is_dst = -1 ]]]]]]] )...
2019-01-17 14:56:26
283
原创 PHP学习笔记——PHP与Web页面交互
一、表单表单标记属性如下表所示:在使用form表单时,必须要指定其行为属性action,它指定表单提交数据的处理页。GET方法是将表单内容附加在URL地址后面;POST方法是将表单中的信息作为一个数据块发送到服务器上的处理程序中,在浏览器的地址栏不显示提交的信息。method属性默认为GET方法。二、在Web页面嵌入PHP脚本1、在HTML标记中嵌入PHP脚本通过在HTML标记中添加PH...
2019-01-17 09:50:37
656
原创 PHP学习笔记——数组
PHP的数组更加灵活,不但支持数字索引数组,而且支持以字符串或字符串、数字混合为键名的关联数组。一、声明数组有两种方式:一是应用数组函数声明数组;二是通过数组标识符[]声明数组。1、通过函数创建数组1)array array([mixed…])参数mixed的预防为“key=>value”(多个参数mixed用逗号隔开),分别定义了索引和值。索引可以是字符串或数字。如果省略了索引,...
2019-01-16 15:19:12
375
原创 PHP学习笔记——正则表达式
一、语法规则1、行定位符(用于描述字符串的边界)“^”表示行的开始;“”表示行的结尾。如mr匹配以mr开始的字符,”表示行的结尾。如^mr匹配以mr开始的字符,”表示行的结尾。如mr匹配以mr开始的字符,mr匹配以mr结尾的字符。如果要匹配的字符串可以出现在字符串的任意部分,可直接写成mr。2、字符类([ ])正则表达式是区分大小写的,如果想忽略大小写,可以通过方括号表达式“[ ]”来完成...
2019-01-16 09:42:07
293
原创 PHP学习笔记——常用字符串操作函数
一、自动转义、还原字符串string addslashes(string str)该函数用来给字符串str加入斜线“\”,对指定字符串中的字符进行转义,能转义的字符包括单引号“’”、双引号“"”、反斜杠“\”、NULL字符“0”。该函数...
2019-01-15 15:07:59
313
原创 PHP学习笔记——控制语句和函数
一、控制语句条件控制语句if-else、switch和循环语句while、do-while、for和其他编程语言的差别不大,PHP多了一个foreach循环。foreach循环在PHP4.0中擅长处理数组,是遍历数组的一种简单方法。在PHP5.0中,增加了对对象的支持。其语法格式为:foreach(array_expression as $value)statement或foreach(...
2019-01-10 16:22:08
254
原创 PHP学习笔记——语法基础
一、PHP标记符PHP标记符能让Web服务器识别PHP代码的开始和结束,而标记之外的任何文本都会被认为是普通的HTML,有4种风格:1、标准风格<?php//PHP代码?>但是对于只包含PHP代码的文件,结束符“?>”是多余的,如果加上它,phpStorm里面会给个警告:Closing tag ‘?>’ is redundant for files conta.
2019-01-10 13:10:33
850
原创 JavaScript与C++等其他语言的不同之处——控制语句
JS中条件语句if-else、switch和循环语句while、do-while、for和C等其他编程语言相同,但是JS中循环语句多了一个for/in,它和常规的for循环完全不同,其语法如下:for(variable in object)statementvariable通常是一个变量名,也可以是一个可以产生左值的表达式或者一个通过var语句声明的变量,总之必须是一个适用于赋值表达式左侧的...
2019-01-04 16:00:07
538
原创 JavaScript与C++等其他语言的不同之处——类型、变量、运算符
因工作需要,最近要自学JavaScript,在学习的过程中,发现JS和其他编程语言有许多相似和不同之处,在此就记录下它的不同之处。一、数据类型1、数字与其他编程语言不同,JS不区分整数值和浮点数值,JS中所有数字均用浮点数值表示,JS采用IEEE754标准定义的64位浮点格式表示数字。2、文本在JS中,字符串常量可以由单引号或双引号括起来。JS中没有表示单个字符的“字符型”,要表...
2019-01-02 16:25:50
851
原创 C++回顾——多态性和虚函数
多态性(在C++中通过虚函数来实现)是面向对象程序设计语言中数据抽象和继承之外的第三个基本特征。多态性提供了接口与具体实现之间的另一层隔离,改善了代码的组织性和可读性,同时也使创建的程序具有可扩展性,程序不仅在项目的最初创建期可以“扩展”,而且当在项目需要有新的功能时也能“扩展”。一、函数调用捆绑 把函数体与函数调用相联系称为捆绑(binding)。当捆绑在程序运行之前(由编译器和连接器)完...
2018-09-10 10:49:47
220
原创 C++回顾——new和delete
一、对象的创建 当创建一个C++对象时,会发生两件事: 1)为对象分配内存; 2)调用构造函数来初始化那个内存(C++强迫这样做是因为未初始化的对象是程序出错的主要原因)C++把创建一个对象所需要的所有动作都结合在一个称为new的运算符里(分配内存并调用构造函数),默认的new还进行检测以确信在传递地址给构造函数之前内存分配是成功的,所以不必显示地确定调用是否成功。delete只用于...
2018-08-22 14:25:03
274
原创 C++回顾——运算符重载
运算符重载只是一种语法上的方便,实际上它是另一种函数调用的方式,其不同之处在于函数的参数不是出现在圆括号内,而是紧贴在一些字符旁边;调用运算符时要把运算符放置在参数之间、参数之后、参数之前;编译器决定调用哪一个“函数”。在C++中,可以定义一个处理类的新运算符,函数的名字由关键字operator及其后紧跟的运算符组成。一、语法 函数名字是operator@,这里@代表了被重载的运算符。参...
2018-08-20 17:32:33
210
原创 C++回顾——引用和拷贝构造函数
一、C++中的指针 C和C++指针的最重要的区别在于C++是一种类型要求更强的语言。C不允许随便地把一个类型的指针赋值给另一个类型,但允许通过void*来实现。C++不允许这样做,如果真想把某种类型当做别的类型处理,则必须显示地使用类型转换。二、C++中的引用 引用(&)就像能自动地被编译器间接引用的常量型指针,它通常用于函数的参数表中和函数的返回值,但也可以独立使用。任何引用必须...
2018-07-25 17:54:26
909
原创 C++回顾——名字控制
一、来自C中的静态元素 在C和C++中,static有两种基本含义(这两种含义经常是互相冲突的): 1)在固定的地址上进行存储分配,即对象是在一个特殊的静态数据区上创建的(静态存储); 2)对一个特定的编译单位来说是局部的。1、函数内部的静态变量 C和C++允许函数内部定义一个static对象,这个对象将存储在程序的静态数据区中,这个对象只在函数第一次调用时初始化一次,以后它将在两次函...
2018-07-20 13:29:31
228
原创 C++回顾——内联函数
函数调用有参数压栈、生成汇编语言的CALL、返回参数、执行汇编语言的RETURN等开销。一、内联函数 内联函数能够像普通函数一样具有我们所期望的任何行为,唯一不同之处是内联函数在适当的地方像宏一样展开,所以不需要函数调用的开销。...
2018-07-13 13:58:40
194
原创 《质量全面管控》读书笔记——灾难恢复与容灾测试(END)
一、灾难恢复 从一个软件和平台的角度讲,一切引起系统非正常停机的事件都可以称为灾难。灾难大致分为3个类型: 1)自然灾害,这是人力不可抗拒的; 2)设备故障,硬件故障、电源中断、网络故障等; 3)人为操作破坏。灾难恢复测试就是灾难发生后,将生产平台恢复到正常运作的能力。1、灾难恢复规范 IT行业公认最关键的衡量指标有两个:RTO和RPO。 RTO(Recovery Time O...
2018-07-08 22:38:07
715
原创 《质量全面管控》读书笔记——性能分析
执行性能测试时监控和分析的全过程: 1)使用性能测试工具收集业务性能数据,并监控数据有无性能异常; 2)观察服务器的硬件资源和性能状况,判断硬件是否存在瓶颈,监控数据包括CPU、Memory、Disk、I/O、网络、数据库连接数等; 3)了解JVM,分析JVM参数是否存在问题,监控JVM使用情况是否有异常; 4)深入分析问题根源,如分析JVM、查询代码异常、使用分析工具分析数据库问题,结合...
2018-07-07 11:51:13
404
原创 C++回顾——常量
一、值替代 要使用const而非#define,必须把const定义放进头文件里。这样,通过包含头文件,可把const定义单独放在一个地方并把它分配给一个编译单元。C++中的const默认为内部连接(internal linkage),也就是说,const仅在const被定义过的文件里才是可见的,而在连接时不能被其他编译单元看到。当定义一个const时,必须赋一个值给它,除非用extern作出了...
2018-07-06 20:24:35
152
原创 QT学习——QTreeView获取选中单行数据和多行数据
个人感觉QTreeView有些地方的使用没有MFC的CListCtrl方便(比如在不响应单击信号的情况下,获取选中行的数据(单行和多行)),也许因为我是新手吧。 一、获取单行选中的数据QModelIndex selected = ui.treeView->currentIndex(); //选中的行selected = selected.sibling(selected.row(),...
2018-07-05 17:04:39
14298
4
原创 C++回顾——函数重载与默认参数
一、函数重载 函数重载:可以对不同的函数使用同样的名字,只要求函数的参数不同。编译器会修饰这些名字、范围和参数来产生内部名以供它和连接器使用。C++代码在编译时会根据参数列表对函数进行重命名,例如void fun(int a, int b)会被重命名为_fun_int_int(不同的编译器有不同的重命名方式),当发生函数调用时,编译器会根据传入的实参去逐个匹配,以选择对应的函数,如果匹配失败,编...
2018-07-05 13:22:14
286
原创 QT学习——QFileSystemModel与QTreeView显示文件夹下的文件信息
最近因为项目需求,使用QT做界面,新手学习,记录一些笔记。虽然QT已经做好了标准对话框的国际化,但是有时候对于中文的翻译可能达不到我们期望的,所以就需要我们自己来修改。比如下面的代码中,利用了国际化: // 写在main函数中 QApplication app(argc, argv); QString translatorFileName("C:/Qt/4.8.6/...
2018-07-05 11:36:29
9711
原创 C++回顾——初始化与清除
一、欧诺个构造函数确保初始化 在C++中,初始化很重要,不应该留给客户程序员来完成。类的设计者可以通过构造函数(constructor)来保证每个对象都被初始化。构造函数和析构函数没有返回值,这是因为在程序中创建和消除一个对象的行为非常特殊,总是由编译器来调用构造函数和析构函数,如果它们有返回值,要么编译器必须知道如何处理返回值,要么就只能由客户程序员自己来显式地调用构造函数与析构函数(这样一来...
2018-07-04 13:54:42
473
原创 C++回顾——隐藏实现
一、C++的访问控制 在任何关系中,设立相关各方面都遵从的边界很重要。需要控制对结构成员的访问有两个理由:1)让客户程序员远离一些他们不需要的工具(他们很容易知道什么是重要的,什么是可以忽略的);2)允许库的设计者改变内部实现,而不必担心会对客户程序员产生影响。 访问控制通常是指实现细节的隐藏。 public意味着在其后声明的所有成员可以被所有的人访问。 private意味着除了该类型的创...
2018-07-04 12:44:47
898
原创 C++回顾——数据抽象
一、动态内存分配 堆是很大的内存块,用以在运行时分配一些小的存储空间。在写程序时,如果还不知道所需内存的大小,就可使用堆。在标准C中,动态内存分配函数包括malloc()、calloc()、realloc()、free()。C++中,使用new和delete。任何时候申请内存都有可能失败,要判断内存是否分配成功。 注意,堆管理器是相当简单的,它给出一块内存,而当用delete释放时又把它收回。...
2018-07-02 21:00:09
272
原创 C++回顾——C++中的C
一、创建函数 参数的顺序和类型必须在声明、定义、函数调用中相匹配(必须指明每一个参数的类型)。 在不知道会有多少个参数或什么类型的参数时,可使用可变的参数列表(用…表示)。如果不想使用函数原型的错误检查功能,可以对固定参数表的函数使用可变参数列表。 C++函数原型必须指明函数的返回值类型(在C中,如果省略返回值,默认为整型)。二、使用C的函数库 在定义自己的函数之前,应该仔细地看一下函...
2018-07-01 20:46:06
257
原创 《质量全面管控》读书笔记——性能测试
一、性能测试基础 性能测试是模拟生产环境在的关键业务压力和多种场景,在多种正常、峰值和异常负载条件下,对系统的各项性能指标进行测试,判断其身份满足系统性能的需求。性能测试包括3个方面:应用在客户端性能的测试、应用在网络上性能的测试和应用在服务器端性能的测试。 1、性能术语 注册用户数:指系统所拥有的所有用户群体。 在线用户数:真正产生压缩的用户,系统要能够支持这么多人同时在线业务。 并发...
2018-06-27 21:07:58
331
原创 C++回顾——对象的创建与使用
一、语言的翻译过程 任何源代码都要转化成机器指令。通常,翻译器分为两类:解释器和编译器。 1)解释器 解释器将源代码转化成一些动作(可由多组机器指令组成)并立即执行这些动作。现在许多的解释器,先把整个程序转化成某种中间语言,然后由执行速度更快的解释器来执行。 解释器的优点:较好的交互性和适于快速程序开发,缺点:执行速度慢、难以调试(不隔离不同代码段的影响)。 2)编译器 编译器直接把源...
2018-06-25 13:09:54
255
原创 《质量全面管控》读书笔记——自动化测试框架
一、框架分析 自动化测试框架提供一整套自动化测试工作流,采用业务流程分析方法,先熟悉业务系统,然后根据业务系统划分出业务流程。 1、框架设计目标 自动化框架把提供业务流可维护、数据可定制、脚本组件化、数据和脚本相分离为目标。完备的自动化测试框架体现以下几个方面: 1)实现对测试资产库的统一管理,测试资产库包括:测试需求、测试计划、测试用例、测试数据、测试脚本、测试缺陷、测试日志、测试报告;...
2018-06-24 10:41:21
337
原创 《质量全面管控》读书笔记——自动化测试基础
一、自动化基础 “工欲善其事,必先利其器”。学习自动化测试之前需要熟悉至少一门开发语言。自动化测试是把手工执行测试的过程转换为机器执行测试的过程,用机器语言来模拟自然人的操作。自动化测试人员根据评审通过后的测试用例来编写和执行自动化脚本,最终产生测试报告,分析测试报告并根据测试报告评估被测系统的质量。自动化测试主要应用在以下场景: 1)冒烟测试:在新版本的软件上执行关键性的测试用例,保证新的程...
2018-06-21 21:46:41
409
原创 7Z源码分析——7z.h
#define k7zStartHeaderSize 0x20#define k7zSignatureSize 6extern const Byte k7zSignature[k7zSignatureSize];文件的开头处定义了2个宏,k7zStartHeaderSize 是7z文件头的大小(详情可见7z文件格式及其源码的分析(三));k7zSignatureSize是7z文件标志的大小...
2018-06-13 10:19:06
2013
原创 7Z源码分析——7zAlloc.h和7zAlloc.c
7zAlloc.h声明了四个函数,用来申请和释放内存,其中输入参数ISzAllocPtr p的类型在头文件7zTypes.h中定义。 7zAlloc.c中实现了7zAlloc.h中声明的四个函数,该文件中还定义了全局变量g_allocCount和g_allocCountTemp,其实这两个全局变量只是方便调试(从打印的变量信息来观测程序是否正常),功能上没有实际意义。void *SzAllo...
2018-06-11 11:03:10
476
空空如也
VC++捕获驱动被禁用或启用的消息(事件、信号)的Windows API函数
2016-03-08
TA创建的收藏夹 TA关注的收藏夹
TA关注的人