- 博客(31)
- 资源 (11)
- 收藏
- 关注
原创 编码规范(一)之文本标记
文本格式:1. 文本标记所有PHP文件,其代码标记均使用完整的PHP标签,不建议使用短标签,例如:<?PHP Echo ‘hello world!’;?> //不建议使用 Echo ‘not suggest’;?>使用短标签格式容易和XML混淆,并且不是所有的PHP版本和服务器都默认支持或打开短标签选项。 对于只含有PHP代码的文
2015-04-27 20:01:05 907
原创 汇编语言基础知识学习笔记(三)
1. DS寄存器通常用来访问存放数据的段地址。【示例】读取10000H单元内容Mov bx,1000HMov ds,bxMov al,[0]将1000:0中的数据读到al中。Mov 指令的两种传送:(1). 将数据直接送入另一个寄存器(2). 将一个寄存器的数据送入另一个寄存器内。10000H用段地址和偏移地址表示位1000:0。我们先将段地址送入寄存器
2015-04-27 19:55:04 754
原创 HTTP协议模拟登录网站
HTTP协议模拟登录发帖等主要原理:把头信息传过去,模拟登录的主要使用Cookie,其次是Referer和User-Agent.需要使用上一篇文章的Socket编程发送GET请求。其扩展代码如下:<?PHP require('./get.php'); //这里的路径需要注意一下,路径中带有?。要设置query $http = newHttp('htt
2015-04-26 13:18:11 2479
原创 Socket编程POST批量发帖
首先本文使用之前的一个留言板案例进行测试,案例连接:使用POST实现对留言板的留言。前面部分是关于步骤原理的讲解,后半部分是继续上一篇文章的代码实现。那么现在开始:1. 留言页面如下:先提交一个留言,然后抓包查看POST数据。看见了这句话:title=vEagleFly&author=vEagleFly&content=vEagleFly这就是我们提交的数据。
2015-04-23 20:40:18 2004
原创 Socket编程发送get请求
发送GET请求以及响应信息如下图所示:本文实现了PHP+Socket实现了发送GET并显示响应结果。【请求原理】:1. 连接某URL的80端口打开2. 发送头信息(写)3. 读取网页内容Socket操作远程文件和读取本地文件一样,把本地文件看成硬件传输,远程文件通过网络传输。【代码实现】:<?PHP /*
2015-04-23 20:21:57 1258
原创 PHP中return返回数组的一点用法
本文就学习中遇到的PHP函数return返回值的问题,这一点return用法进行了说明。在函数的内部用return返回一个值或者为空来结束函数的运行。但是在return一个数组的时候,也可以在函数的内部直接使用print_r来打印。但一般都不这么做。拿上一篇文章举例:也可以这么实现:<?PHP function bubble($array){ $l
2015-04-21 23:48:43 12541 1
原创 冒泡排序
冒泡排序百科上的解释为:算法原理:(从后往前)1. 比较相邻的元素。如果第一个比第二个大,就交换它们两个。2. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。3. 针对所有的元素重复以上的步骤,除了最后一个。4. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。时间复杂
2015-04-21 23:36:16 576
原创 cURL常见设置项的简单介绍
cURL设置项cURL的设置项通过curl_setopt函数设置,原型如下: boolcurl_setopt(resource $ch,int $option,mixed $value);常用的设置项介绍如下:1. CURLOPT_REFERER: 当根据Location:重定向时,自动设置header中的Referer信息2. CURLOPT_COOK
2015-04-20 22:42:50 7996
原创 cURL特性之批处理
cURL批处理cURL还有一个高级特性——批处理句柄(handle)。这一特性允许同时或异步打开多了cURL连接。【示例】:<?PHP //创建两个cURL资源 $ch1 = curl_init(); $ch2 = curl_init(); //指定URL和适当的参数 curl_setopt($ch1,CURLOPT_URL,
2015-04-20 20:32:09 2470
原创 汇编语言基础知识学习笔记(二)
一.寄存器(CPU工作原理)CPU由运算器、控制器、寄存器等器件构成。在CPU中,运算器进行信息处理;寄存器进行信息存储;控制器控制各种器件进行工作;内部总线连接各种器件,在它们之间进行数据传送。不同的CPU寄存器的个数、结构是不一样的。8086CPU有14个寄存器:AX、BX、CX、DX、SI、DI、SP、BP、IP、CS、SS、DS、ES、PSW。8086CPU的AX、BX、C
2015-04-20 20:18:05 734
原创 汇编语言基础知识学习笔记(一)
汇编语言发展至今,由下列三类指令组成。1. 汇编指令:机器码的助记符,有对应的机器码。2. 伪指令:没有对应的机器码,由编译器执行,计算机并不执行。3. 其他符号:如:+、-、*、/等,由编译器识别,没有对应的机器码。汇编语言的核心是汇编指令,它决定了汇编语言的特性。一. CPU对存储器的读写CPU要想进行数据的读写,必须和芯片进行3类的信息
2015-04-20 20:12:54 958
原创 PHP断点续传的原理与实现
PHP断点续传的原理与实现断点续传主要是HTTP协议中的Content-Range报头。其理解如下:Content-Range:响应资源的范围。可以在多次请求中标记请求的资源范围,在连接断开重新连接时,客户端只请求该资源未被下载的部分,而不是重新请求整个资源,实现了断点续传。迅雷就是基于这个原理,使用多线程分段读取网络上的资源,最后合并。关于PHP使用多线程实现断点续传稍后讨论。本文只实现
2015-04-18 16:34:06 10043
原创 HTTP应用:模拟灌水机器人
模拟灌水机器人 注:由于论坛实现了评价审核,或者直接使用wordpress建站,本文实现的灌水机器人就显得吃力了。 首先,要实现HTTP协议与服务器的交互,不一定使用浏览器,对于服务器,无法识别是真实的浏览器还是“虚拟”的浏览器。 1. PHP中与HTTP协议相关的函数a) get_headers()函数。取得服务器响应一个HTTP请求所发送的标头。可以用此
2015-04-18 16:11:48 1307
原创 HTTP协议详解
HTTP协议详解HTTP协议是应用层的协议,那么它是如何工作的呢?1) 客户端与服务器端需要建立连接2) 客户端发送请求。3) 服务器收到请求,给予相应的响应信息。4) 客户端接收服务器返回的信息并显示,断开连接。HTTP协议的工作:请求和响应。1. 请求HTTP请求由三部分组成:请求行、消息报头、请求正文。参数说明:
2015-04-18 14:53:57 861
原创 PHP核心技术与最佳实践之Hash表冲突
PHP核心技术与最佳实践之Hash表冲突接着上一篇文章,测试后输出value1value2.当$ht->insert(‘key12’,’value12’);Echo $ht ->find(‘key12’);时,发现输出value12value12.这是什么原因呢?这个问题称为Hash表的冲突。由于insert的是字符串,采用的算法是将字符串的ASIIC码相加,按照此方法,冲突产
2015-04-14 21:55:01 1081
原创 PHP核心技术与最佳实践之Hash算法
PHP核心技术与最佳实践之Hash算法Hash表又称散列表,通过把关键字Key映射到数组中的一个位置来访问记录,以加快查找速度。这个映射函数称为Hash函数,存放记录的数组称为Hash表。1. Hash函数作用是把任意长度的输入,通过Hash算法变换成固定长度的输出,该输出就是Hash值。这种转换是一种压缩映射,也就是Hash值得空间通常远小于输入的空间,不输入可能会散列成相同
2015-04-14 21:51:24 1428
原创 PHP核心技术与最佳实践之对象的序列化
PHP核心技术与最佳实践之对象的序列化对象是一堆数据,可以把对象存储起来,以便需要时使用,这就是对象的序列化。 所谓序列化,就是把保存在内存中的各种对象状态(属性)保存起来,并且在需要时可以还原出来。下面代码实现了把内存中的对象当前状态保存到一个文件中。$str = serialize($student);Echo $str;File_put_contents(‘s
2015-04-14 16:03:37 681
原创 PHP核心技术与最佳实践之正则表达式反向引用
PHP核心技术与最佳实践之正则表达式反向引用反向引用用于重复搜索前面某个分组匹配的文本。例如:“\1”代表分组1匹配的文本:\b(\w+)\b\s+\1\b要反向引用分组捕获的内容,可以使用“\k”上个例子:\b(?\w+)\b\s+\k\b【示例】:UBB标签代码UBB标签用来在论坛和留言板中代替HTML,实现一些简单的HTML效果,同时防止滥用HTML出现安全问题。
2015-04-14 16:03:09 1325
原创 PHP核心技术与最佳实践之正则表达式匹配规则
PHP核心技术与最佳实践之正则表达式匹配规则本文介绍几种常用的匹配规则。1. 字符组查找数字、字母、空白很简单,因为已经有了对应这些集合的元字符,但是如果匹配没有预定义元字符的字符集合,方法很简单, 就是在方括号内列出它们。例如:[aeiou]匹配任何一个英文元音字母,[.*?]匹配标点中的一个。注意此时方括号内的元字符失去了特殊意义。也可以指定字符范围,例如[0-9]
2015-04-14 16:01:00 755
原创 正则表达式基础提升归纳
正则表达式是一种不确定有限自动机。NFA。在书写正则表达式时应尽量减少回溯来提高正则表达式的效率。一. 理解元字符根据功能,元字符可分为两种类型:匹配位置的元字符和匹配字符的元字符。1. 匹配位置的元字符包括:^、$和\b三个字符。^(脱字符号,在文章插入字时使用)$(美元符号)。他们分别表示行的开始和末尾。^string 正则表达式匹配以str
2015-04-14 15:57:56 620
原创 PHP socket网络编程之使用curl
PHPsocket 网络编程之使用cURLcURl代表客户端URL,是一种专门处理URL的命令行工具。本文介绍cURl打开网页并向其提交数据。【示例】:cURL库被PHP用于向页面传递数据<?PHP //创建cURL事务 $url = 'HTTP://localhost/service.php'; $curl = curl_init($url)
2015-04-09 18:12:39 1386
原创 PHP设计模式之单例模式简单代码介绍
PHP设计模式之单例模式单例模式是一种创建型模式,它会限制应用程序,使其只能创建某一特定类类型的一个单一的实例。举例来说,一个web站点将会需要一个数据库连接对象,但是应该有且只能有一个,因此我们通过使用单例模式来实现这种限制。我们可以使用一个静态属性来保证对于一个特定的类来说只存在一个单一的实例。Class someclass{ Static private $_in
2015-04-09 18:10:27 2623
原创 正则表达式基础篇
正则表达式基础篇正则表达式的函数库:1. PCRE,与Perl语言兼容的正则表达式函数。2. POSIX。【语法规则】一. 原子:原子是正则表达式的最基本的组成单位,每个模式中至少包含一个原子。原子是由所有未显示指定为元字符的打印和非打印字符组成,1) 普通字符作为原子包括大写小写字母,所有的数字。2) 一些特殊字符和元字
2015-04-09 18:07:40 708
原创 PHP socket 编程之使用ip进行地址查询
使用ip进行地址查询要想使用ip进行地址查询,需要连接GeoIP数据库。本文将使用freegroip.net提供的简单在线服务。【示例】:找到用户的地理位置<?PHP function show_ip_info($ip){ //发出服务请求并输出结果,该网站请求的url按照http://freegeoip.net/{数据格式}/{要查询的ip地
2015-04-08 22:01:48 891
原创 PHP Socket编程 之使用fsockopen()函数
PHPSocket编程Socket可以理解为两台计算机相互通信的通道。用法:使用fsockopen()函数具体用法详见上篇文章。函数的参数为URL、端口号、一个存放错误编号的变量、一个存放错误信息字符串的变量和超时等待时间。(只有第一个参数是必须的)常见的端口表:端口号主要用途21FTP22
2015-04-08 21:57:12 1680
原创 一些在PHP网络编程中会遇到的函数简单介绍
PHP网络编程函数介绍1. Fgetcsv函数—解析读入的行并找出csv格式的字段。Fgetcsv函数可以解析读入的行并找出csv格式的字段,然后返回一个包含这些字段的数组。Fgetcsv()函数参数的说明:参数说明Handle必选参数。打开文件后返回文件标识指针Length必选参数
2015-04-08 17:09:55 662
原创 目录文件处理函数之clearstatcache函数--清除缓存
Clearstatcache函数—清除缓存当应用某些文件操纵函数对文件进行操作时,PHP将缓存这些函数的返回信息以提供更快的性能,还可以应用clearstatcache()函数清除缓存的内容。【语法】:void clearstatcache(void)参数为空。【示例】<?PHP $array = stat(“c:/windows/index.php”);
2015-04-07 18:30:51 767
原创 目录文件处理函数之dir函数-将目录名转换为对象
Dir函数—将目录名转换为对象Dir函数可将目录名转换为一个对象并返回。返回的对象可以调用2个属性和3个方法。可调用的属性和方法如表所示:属性和方法说明属性和方法说明Handle属性返回目录标识Rewind()方法复位目录标识Path属性返
2015-04-07 18:28:57 741
原创 再谈高级面向对象编程之traits代码复用
再谈高级面向对象编程之traitsPHP实现了代码复用的一个方法,称为traits。Traits试图用来解决在像PHP这样的面向对象语言中只支持单继承的问题。举例来说,比如我们设计了一个web站点,他有很多不同的类:用户(user),页面(page),联系表单(contactform)等。当我们在开发这个站点的时候,如果不去关心对象的类型,而可以使用一个调试工具打印出一个给定对象的信息,那
2015-04-03 19:55:50 736
原创 再谈高级面向对象编程之接口
再谈高级面向对象编程之接口和抽象类相似的是接口,接口,如抽象类一样,定义必须被特定类定义的功能接口,要创建接口,需要使用interface关键字,然后在大括号内,定义方法签名,而不是方法的真正实现。Interface isomething{ Public function somefunction($var);}作为一个惯例,接口名字经常以一个小写的i开始,但是这并
2015-04-03 16:48:11 385
原创 再谈高级面向对象编程之抽象类和方法
再谈高级面向对象编程之抽象类和方法抽象类和方法:抽象类是父类的模板。通常定义一个抽象类,可以指明类的一般行为。抽象类和普通类的最大区别在于,如果试图从抽象类创建一个对象将会出现一个致命的错误,相反,抽象类就是用来扩展的,然后创建这些类的实例。抽象类的定义方式:abstract知识拓展:方法__toString()介绍如果在类中定义了这个方法,当这个类的对象用作str
2015-04-03 16:21:41 534
docker_rpm.zip
2020-05-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人