![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
PHP
veaglefly
这个作者很懒,什么都没留下…
展开
-
php标准库(SPL)-SPL函数
array class_implements ( mixed $class [, bool $autoload ] ) — 返回指定的类实现的所有接口。array class_parents ( mixed $class [, bool $autoload ] ) — 返回指定类的父类。int iterator_apply ( Traversable $iterator , cal原创 2016-03-09 14:35:53 · 837 阅读 · 0 评论 -
strip_tags()函数使用注意
strip_tags ()函数用来 从字符串中去除 HTML 和 PHP 标记。示例:<?php$text = 'Test paragraph. Other text' ;echo strip_tags ( $text );echo "\n" ;// 允许 和 echo strip_tags ( $text , '' );?>今天在写博客项目的时候,发现使用此函数时,会原创 2015-08-14 15:39:48 · 4529 阅读 · 0 评论 -
模块化web程序
1. 创建配置文件a) 定义常量b) 建立站点范围内的设置c) 创建用户自定义函数d) 管理错误示例:创建一个配置文件:Config.inc.php1) 设置处理错误需要用到的电子邮件$conact_email = 'veaglefly@163.com';2) 判断该脚本在测试服务器上还是真实服务器上$host = subs原创 2015-03-28 17:39:29 · 441 阅读 · 0 评论 -
一致性Hash分布算法实例
本文介绍使用PHP实现一致性Hash算法。创建一个FlexiHash类,他有两个成员变量和三个方法:$serverlist:保存服务器列表。$isSorted:记录服务器列表是否已经排过序。addServer:添加一个服务器到服务器列表中;removeServer:从服务器列表中删除一个服务器;lookup:在当前的服务器中寻找合适的服务器存放数据。【示例】:<?原创 2015-07-07 19:09:13 · 876 阅读 · 0 评论 -
PHP中return返回数组的一点用法
本文就学习中遇到的PHP函数return返回值的问题,这一点return用法进行了说明。在函数的内部用return返回一个值或者为空来结束函数的运行。但是在return一个数组的时候,也可以在函数的内部直接使用print_r来打印。但一般都不这么做。拿上一篇文章举例:也可以这么实现:<?PHP function bubble($array){ $l原创 2015-04-21 23:48:43 · 12518 阅读 · 1 评论 -
HTTP协议模拟登录网站
HTTP协议模拟登录发帖等主要原理:把头信息传过去,模拟登录的主要使用Cookie,其次是Referer和User-Agent.需要使用上一篇文章的Socket编程发送GET请求。其扩展代码如下:<?PHP require('./get.php'); //这里的路径需要注意一下,路径中带有?。要设置query $http = newHttp('htt原创 2015-04-26 13:18:11 · 2461 阅读 · 0 评论 -
Pro PHP Programning之接口、迭代器和抽象类
接口、迭代器和抽象类接口是一个描述一整套方法的对象,某类可能要选择其中的方法去实现。接口如下所示:interface interf{ Public function f1($x,$y); Public function f2(…); Public function f3(…);}接口可以由其他接口继承而来,就像类一样。Interfac原创 2015-03-30 12:37:58 · 889 阅读 · 0 评论 -
再谈高级面向对象编程之接口
再谈高级面向对象编程之接口和抽象类相似的是接口,接口,如抽象类一样,定义必须被特定类定义的功能接口,要创建接口,需要使用interface关键字,然后在大括号内,定义方法签名,而不是方法的真正实现。Interface isomething{ Public function somefunction($var);}作为一个惯例,接口名字经常以一个小写的i开始,但是这并原创 2015-04-03 16:48:11 · 379 阅读 · 0 评论 -
再谈高级面向对象编程之抽象类和方法
再谈高级面向对象编程之抽象类和方法抽象类和方法:抽象类是父类的模板。通常定义一个抽象类,可以指明类的一般行为。抽象类和普通类的最大区别在于,如果试图从抽象类创建一个对象将会出现一个致命的错误,相反,抽象类就是用来扩展的,然后创建这些类的实例。抽象类的定义方式:abstract知识拓展:方法__toString()介绍如果在类中定义了这个方法,当这个类的对象用作str原创 2015-04-03 16:21:41 · 525 阅读 · 0 评论 -
PHP设计模式之单例模式简单代码介绍
PHP设计模式之单例模式单例模式是一种创建型模式,它会限制应用程序,使其只能创建某一特定类类型的一个单一的实例。举例来说,一个web站点将会需要一个数据库连接对象,但是应该有且只能有一个,因此我们通过使用单例模式来实现这种限制。我们可以使用一个静态属性来保证对于一个特定的类来说只存在一个单一的实例。Class someclass{ Static private $_in原创 2015-04-09 18:10:27 · 2616 阅读 · 0 评论 -
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 · 7986 阅读 · 0 评论 -
PHP断点续传的原理与实现
PHP断点续传的原理与实现断点续传主要是HTTP协议中的Content-Range报头。其理解如下:Content-Range:响应资源的范围。可以在多次请求中标记请求的资源范围,在连接断开重新连接时,客户端只请求该资源未被下载的部分,而不是重新请求整个资源,实现了断点续传。迅雷就是基于这个原理,使用多线程分段读取网络上的资源,最后合并。关于PHP使用多线程实现断点续传稍后讨论。本文只实现原创 2015-04-18 16:34:06 · 10031 阅读 · 0 评论 -
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 · 2462 阅读 · 0 评论 -
将csv格式数据导入MySql数据库
将csv文件或者excel表格导入数据库的方法:Excel数据直接导入mysql会需要用到phpexcel开源类,详情使用可以参考这篇文章~http://www.cnblogs.com/freespider/p/3284828.html本文使用的方法是:Excel ——> CSV——>MySql首先将excel另存为csv文件,然后开始分析数据。代码如下:<?PHP原创 2015-08-05 19:22:13 · 1803 阅读 · 0 评论 -
php启用zend guard loader扩展问题
经过测试,我使用的phpstudy 配置的环境。要想启用该扩展,必须将thread safe设置为disabled状态。其中php5.3版本已经不能支持手动启用和禁用threadsafe。需要切换版本为5.4或者更高(更高版本没有测试过) 。首先说下在使用phpstudy切换版本时可能出现的问题,我在测试时出现了500 系统内部错误,此时首先检查软件版本是否最新,升级后解决问题。原创 2015-10-11 21:24:47 · 4386 阅读 · 0 评论 -
他山之石-php编译中遇到error解决办法!
1) Configure: error: xml2-config not found. Please check your libxml2 installation.Solutions :Quote:#yum install libxml2 libxml2-devel (For Redhat & Fedora)# aptitude install libxml2-dev (For转载 2015-12-31 11:15:03 · 482 阅读 · 0 评论 -
php标准库(SPL)-迭代器-AppendIterator和ArrayIterator详解
原型:AppendIterator extends IteratorIterator implements OuterIterator {/* 方法 */public __construct ( void )public void append ( Iterator $iterator )public mixed current ( void )public void g原创 2016-03-09 14:00:12 · 1226 阅读 · 0 评论 -
php标准库(SPL)-数据结构(二)-SplStack详解
2.SplStack原型:SplStack extends SplDoublyLinkedList implements Iterator , ArrayAccess , Countable {/* 方法 */__construct ( void )void setIteratorMode ( int $mode )/* 继承的方法 */public void SplDo原创 2016-03-09 11:59:08 · 1062 阅读 · 0 评论 -
php标准库(SPL)-数据结构(一)-SplDoublyLinkedList详解
SPL是用于解决典型问题(standard problems)的一组接口与类的集合。1. SplDoublyLinkedList 原型:SplDoublyLinkedList implements Iterator , ArrayAccess , Countable {/* 方法 */public __construct ( void )public void原创 2016-03-09 11:33:18 · 884 阅读 · 0 评论 -
他山之石-sphinx全文检索之PHP使用教程
数据表:CREATE TABLE email (emailid mediumint(8) unsigned NOT NULL auto_increment COMMENT '邮件id',fromid int(10) unsigned NOT NULL default '0' COMMENT '发送人ID',toid int(10) unsigned NOT NULL default转载 2015-12-23 21:57:06 · 412 阅读 · 0 评论 -
他山之石-php缓存技术总结
1、全页面静态化缓存也就是将页面全部生成html静态页面,用户访问时直接访问的静态页面,而不会去走php服务器解析的流程。此种方式,在CMS系统中比较常见,比如dedecms;一种比较常用的实现方式是用输出缓存:Ob_start()******要运行的代码*******$content = Ob_get_contents();****将缓存内容写入html文件*****转载 2015-12-23 13:30:44 · 445 阅读 · 0 评论 -
【php中的curl】php中curl的详细解说
cURL可以使用URL的语法模拟浏览器来传输数据,因为它是模拟浏览器,因此它同样支持多种协议,FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP等协议都可以很好的支持,包括一些:HTTPS认证,HTTP POST方法,HTTP PUT方法,FTP上传,keyberos认证,HTTP上传,代理服务器,cooki转载 2015-12-03 13:34:10 · 401 阅读 · 0 评论 -
PHP中用var_export和serialize做数组缓存的性能测试
一般我们把数组缓存到文件中的话,都是先要转成字符串的形式,然后再存入文本文件中,一般有两种机制把数组转成字符串,第一种是$str = var_export($arr, true);第二种是$str = serialize($arr);这两种机制转换之后的字符串是不一样的,第一种是数组的原型模式,第二种是序列化后的形式。第一种存入文件中的只要加上标签,就形式了一个可用的数组原转载 2016-01-21 10:49:51 · 753 阅读 · 0 评论 -
他山之石-PHP多线程的实现方法详解
多线程是java中一个很不错的东西,很多朋友说在php中不可以使用PHP多线程了,其实那是错误的说法PHP多线程实现方法和fsockopen函数有关,下面我们来介绍具体实现程序代码,有需要了解的同学可参考。 当有人想要实现并发功能时,他们通常会想到用fork或者spawn threads,但是当他们发现php不支持多线程的时候,大概会转换思路去用一些不够好的语言,比如perl。转载 2015-12-26 19:14:03 · 655 阅读 · 0 评论 -
他山之石-查找附近点--Geohash方案讨论
随着移动终端的普及,很多应用都基于LBS功能,附近的某某(餐馆、银行、妹纸等等)。基础数据中,一般保存了目标位置的经纬度;利用用户提供的经纬度,进行对比,从而获得是否在附近。目标:查找附近的XXX,由近到远返回结果,且结果中有与目标点的距离。针对查找附近的XXX,提出两个方案,如下:一、方案A:====================================转载 2016-01-19 19:58:36 · 380 阅读 · 0 评论 -
php扩展geoIP的使用
geoIP扩展可以通过IP地址获取用户详细的位置信息。是一种以键值的方式存取数据。GeoCounty => GeoIP.Example: <?PHP include('geoip.inc.php'); //打开数据文件 $gi = geoip_open("GeoIp.dat",GEOIP_STANDARD); //获取国家名称 $country_name原创 2016-01-19 19:43:22 · 1018 阅读 · 0 评论 -
他山之石-部署PHP时的4个配置修改说明
以下就是部署PHP时的4个配置修改说明,大家一个一个进行学习研究。1、short_open_tag 是什么呢? 决定是否允许使用代码开始标志的缩写形式( )。 如果要和 XML 结合使用PHP,可以禁用此选项以便于嵌入使用 。否则还可以通过php来输出, 例如: 。 如果禁用了,必须使用 PHP 代码开始标志的完整形式( )。 注意:本指令转载 2016-01-19 18:26:40 · 343 阅读 · 0 评论 -
他山之石-刷新PHP缓冲区为你的站点加速
这篇文章主要介绍了通过刷新PHP缓冲区可以加速你的站点,非常实用的小技巧,需要的朋友可以参考下 在当前 PHP 版本的默认配置下,“输出缓冲(Output Buffering)”是被打开的。旧版本则不是这样,在旧版本的 PHP 中,字符串在每次被输出的时候(通过 echo 或 print 函数),都会触发一次发送到客户端浏览器的动作。“输出缓冲”的引入,使得这一过程更加快速、更加高效转载 2016-01-19 08:39:55 · 330 阅读 · 0 评论 -
HTTP应用:模拟灌水机器人
模拟灌水机器人 注:由于论坛实现了评价审核,或者直接使用wordpress建站,本文实现的灌水机器人就显得吃力了。 首先,要实现HTTP协议与服务器的交互,不一定使用浏览器,对于服务器,无法识别是真实的浏览器还是“虚拟”的浏览器。 1. PHP中与HTTP协议相关的函数a) get_headers()函数。取得服务器响应一个HTTP请求所发送的标头。可以用此原创 2015-04-18 16:11:48 · 1276 阅读 · 0 评论 -
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 · 1377 阅读 · 0 评论 -
PHP Socket编程 之使用fsockopen()函数
PHPSocket编程Socket可以理解为两台计算机相互通信的通道。用法:使用fsockopen()函数具体用法详见上篇文章。函数的参数为URL、端口号、一个存放错误编号的变量、一个存放错误信息字符串的变量和超时等待时间。(只有第一个参数是必须的)常见的端口表:端口号主要用途21FTP22原创 2015-04-08 21:57:12 · 1671 阅读 · 0 评论 -
Pro PHP Programing之安全白名单和黑名单
白名单和黑名单对于include或者require函数的调用,不应该使用$_GET或$_POST值,因为尚不知晓文件名称。攻击者试图通过为文件名添加…/…/之类的前缀绕过文档根目录的权限控制。对于include或require调用中的变量,应该使用可接受文件名的白名单或净化文件名。注意:白名单是包含获准项的列表,黑名单则是包含禁止项的列表。白名单比黑名单更加严格,因为它们具体指定了获准项,原创 2015-03-30 12:47:43 · 951 阅读 · 0 评论 -
Pro PHP Programing之安全register_globals
Register_globals的安全检查:初始化变量常常是最佳实践。PHP.ini开启register_globals指令时,防御可能产生的攻击的有效措施。由于开启了register_globals,$_POST和$_GET变量寄存在脚本的全局变量中。如果为了追加诸如”foobar = 3”之类的查询字符串,PHP将在后台创建同名的全局变量。【示例】:register_globals的安原创 2015-03-30 12:45:36 · 823 阅读 · 0 评论 -
Pro PHP Programing之类的作用域和静态成员
变量和方法在类的作用域内,而不是在每个对象的作用域内,被叫做静态变量。【示例】:静态变量<?PHP #静态变量示例 class test{ private static$objcnt; function__construct(){ ++self::$objcnt;原创 2015-03-30 12:41:51 · 587 阅读 · 0 评论 -
PHP提升-include(),require(),include_once(),require_once()区别
PHP提升-includeInclude和require语句用于在执行流中向其他文件插入有用的代码。Include和require很相似,除了在错误处理方面的差异。Require会产生致命的错误(E_COMPILE_ERROR),并停止脚本,include只会产生警告(E_WARNING),脚本将会继续。1. Require、require_once、include、inc原创 2015-03-28 09:57:04 · 496 阅读 · 0 评论 -
PHP基础-数组排序Sort()、Rsort()、Asort()、Ksort()、Arsort()、Krsort()
PHP基础-数组排序数组中的元素能够以字母或数字顺序进行升序或降序排序。本部分总结了如下PHP常用的数组排序函数。a) Sort() –以升序对数组排序b) Rsort() –以降序对数组排序c) Asort()-根据值,以升序对关联数组进行排序。d) Ksort()- 根据键,以升序对关联数组进行排序。e) Arsort() – 根原创 2015-03-28 09:39:30 · 1200 阅读 · 0 评论 -
PHP提升-MVC介绍
PHP提升-MVC介绍MVC不是一种设计模式,而是一种架构模式,用以描述应用程序的结构以及结构中各部分的职责和交互方式。MVC除了将视图从业务逻辑中分离开,MVC的分离也降低了大型应用设计的难度,代码更具结构性,因此也更容易维护,测试和重用。简单概括三部分的作用:1. 控制器掌管着用户的请求(当用户点击图形用户界面(GUI)上的元素执行操作时,控制器会接收GET或POS原创 2015-03-28 10:14:32 · 448 阅读 · 0 评论 -
PHP基础-echo,print,print_r,var_export,var_dump
PHP基础-echo,print,print_r,var_export,var_dump在PHP当中,跟输出相关的语句或函数,echo,print,print_r,var_export,var_dump,他们可以笼统的概括为都是输出变量内容的。但是他们之间还是有很大的差别。1. EchoEcho用于输出一个或者多个字符串或变量值,他是PHP语句,不是函数。因为他不是函数,所以他原创 2015-03-28 09:11:39 · 566 阅读 · 0 评论 -
使用printf()和sprintf()
Printf()不仅能显示文本,还可以设置输出的格式。Printf (string format,[mixed arguments])格式参数format是由直接文本变量和特殊格式参数组成的字符串。特殊格式参数由百分号开始,之后有很多组合。同C语言。Sprintf()函数的工作原理和printf() 几乎完全一样,但是他不是显示格式化的字符串,而是返回他。这个函数非常适合生成数据库查询原创 2015-03-27 16:30:28 · 795 阅读 · 0 评论 -
PHP实例二之简单的万年历
<?php //万年历的实现 // 1.获取日期信息年和月$year = date("Y");//如果有直接取出,没有就获取。$mon = date("m");$today = date("d"); // 2.计算出当前月有多少天和本月1号是星期几 $day = date("t",mktime(0,0,0,$mon,1,$year));//获取当月天数 $w = date(原创 2015-01-06 07:44:30 · 764 阅读 · 0 评论