php
文章平均质量分 54
John-Han
好记性,不如烂笔头!
展开
-
PHP:防止跨域CURL采集数据
1.一些网站是采用检测此IP地址登录的密集度,多次登录后需要输入验证码,那么这时CURL模拟的提交就需要去对验证码图片进行分析,这样就会花费大量时间,当然,这种是对于防止登录被爆破,用户资料泄露的。2.还有一种就是直接在session保存生成的随机码,然后放在input的隐藏域,这种比验证码那种差了许多。3.注意javascipt本身是无法跨域提交的,不是因为不能做到,而是防止别人恶意偷取原创 2015-05-10 15:07:27 · 3913 阅读 · 0 评论 -
个人猜想的web安全——理解PHP的sessionID的实现
今天,在回想阿里的面试官关于cookie和session之间的区别和联系的问题时,想到一个问题,就是如果用curl模拟别人的cookie中的sessionID,是不是就可以直接就爆破登录了呢,想了很久,考虑用客户端的IP地址来解决,然后我就好奇php自身的sessionID的实现原理,查了一下发现,确实是跟客户端的IP挂钩,如果IP加密出来的sessionID和当前的sessionID不对应,也是原创 2015-08-06 00:00:23 · 4413 阅读 · 0 评论 -
php5.3新特性之延迟静态绑定
基于PHP版本: 5.3.5PHP5.3 以后引入了延迟静态绑定:static(关键字) 类似于 self(关键字) , 但它指向的是被调用的类(Document) 而不是包含类(DomainObject) , static 和 self 的区别:主要的作用就是,弥补了原先的不足,原先子类可以用parent找到父类对象的,现在可以在父类用static找到当前继承它的这个子类原创 2015-07-31 14:26:19 · 544 阅读 · 0 评论 -
关于静态方法不能调用类中的非静态属性的理解
class test{ public $a; public function game(){ echo "123"; } public static function name(){ //$this->a=new test();错误的写法, //静态方法在类加载的时候就加载进内存,此时$this的对象还没有生成 //所以报错 $this->a=new test();原创 2015-08-24 15:52:58 · 4450 阅读 · 0 评论 -
关于php中携带的php-fpm和php-cgi的理解纠正
一开始我认为这两者是不同的,后来经过查阅许多资料后发现,其实两者都是php的FastCGI管理器,php-cgi是php自带的管理器,而php-fpm是为php专门制作的FastCGI管理器(5.3之前是php的补丁功能,5.3之后加入到php中,替换了原先的php-cgi)。PHP-CGIPHP-CGI是PHP自带的FastCGI管理器。PHP-CGI的不足:原创 2015-07-15 06:33:34 · 965 阅读 · 0 评论 -
PHP编译原理之Opcode
一.编译原理的过程编译程序的工作过程一般可以划分为五个阶段: 1)词法分析:输入源程序,对构成源程序的字符串进行扫描和分解,识别出一个个的单词 (如基本字、标识 符、常量、运算符、标点符、左右括号等) 描述词法规则通常用:正规式 和 有限自动机 依循的原则:词法规则。。。线性分析。。。 2原创 2015-07-14 08:09:07 · 2303 阅读 · 0 评论 -
关于apache以fastcgi模式运行php的错误理解纠正
1、上篇文章写到,php要以fast-cgi方式在apache下运行,需要借助第三方的模块fcgi.so,默认的情况下是编译到apache中,如同apache这个程序拥有php脚本解析功能,这种是ISAPI方式模式。 2、 fcgi.so这个功能模块是一个fastcgi管理器,原先php在5.3版本之前是以CGI模式或者是编译在apache下的ISAPI模式运行,所以需要这个第三方插件来帮助,原创 2015-06-30 18:04:50 · 1934 阅读 · 0 评论 -
Apache与ngnix的对比
一、PHP在Apache与ngnix下的运行模式。1)、Apache下有三种运行模式:CGI模式,模块化模式,FastCGI模式。CGI模式会是比较原始的方式,每一次接到请求会调用php.exe,解析php.ini,加载DLL等,速度自然慢。模块化模式,Apache默认以这种方式运行php,这是将php编译成自己本身的一个模块,在处理php脚本的时候不需要去调用php.exe程序,整个原创 2015-06-30 07:18:06 · 990 阅读 · 0 评论 -
Linux+php在apache上以fastcgi模式运行
FastCGI 的主要优点是把动态语言和web server分离开来,所以web server与PHP/PHP-FPM经常被部署在不同的服务器上,以分担前端web server服务器的压力,使web server专一处理静态请求和转发动态请求,而PHP/PHP-FPM服务器专一解析PHP动态请求。为了测试,暂不安装mysql并且这里以apache为例,编译参数较少。安装编译环境:yum原创 2015-06-30 08:01:16 · 1731 阅读 · 0 评论 -
队列与栈:两个栈实现队列,两个队列实现栈
1、题目:用两个栈实现一个队列。先用一个栈录入数据,再输出这个栈到另外一个栈,就可以形成队列的先进先出顺序了。因为PHP的数组可以模拟栈的实现,所以代码如下:<?phpfunction StackToQueue($data){ $arr=array(); while($_t=array_pop($data)) { array_push($arr, $_t); } retur原创 2015-06-27 14:40:03 · 638 阅读 · 0 评论 -
行元素从小到大递增,列元素从小到大递增的数组查找算法
题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。考点:这道题主要是要利用好所给的两个条件,行递增和列递增,将肯定不合适的数据排除在外,将要遍历的数据尽可能的减少。数组例子如下:1289249124原创 2015-06-26 14:44:30 · 1130 阅读 · 0 评论 -
关于Thinkphp中的图像处理无法处理gif图的问题
tp中有一个BUG无法生成GIF的缩略图:解决解决办法:修改TP中的GIF类即可:这个文件中后两个类,GIFEncoder和GIFDecoder的构造函数名改为:__construct即可。【TP用的是旧版本的写法:方法名和类名相同就是构造函数】GIFEncoderGIFDecoder原创 2015-06-05 22:39:34 · 1419 阅读 · 0 评论 -
递归与递推实现斐波那契数列算法
<?php/*f(n)=f(n-1)+f(n-2)f(0)=0f(1)=1*/function Fibonacci($n){ if($n<=0) { return 0; } if($n==1) { return 1; } return f(n-1)+f(n-2);}/*递推实现*/function Fibonacci1($n){ if($n<=0原创 2015-06-27 15:18:04 · 1496 阅读 · 0 评论 -
快速排序Qsort
<?phpfunction Partition(&$arr,$low,$high){ $_t=$arr[$low]; while($low<$high) { //注意第二个限制条件,不然如果一直都是大于会超过数组下标 while($arr[$high]>$_t&&$high>$low) --$high; $arr[$low]=$arr[$high]; while($ar原创 2015-06-27 15:01:55 · 754 阅读 · 0 评论 -
合并两个有序数组
题目:有两个排序的数组A和B,数组A剩余的空间刚好够容纳B,请实现一个函数,把B中的所有数字插入到A中并且所有的数都是排序的。很多人一开始的想法就是简单的插入,足够暴力,在A中直接从头到尾遍历,找到合适的位置就移动后面所有的元素,让出一个位填补新插入的数,这种做法是效率最低的。反其道而行之,更好的办法是从尾开始比较A和B中的数字,把较大的数字复制到A的末尾。这种解决方法同样可以原创 2015-06-26 15:17:53 · 759 阅读 · 0 评论 -
PHP中防XSS攻击和防sql注入
SQL注入如何防?TP中的底层已经做了防SQL注入的操作,只要我们操作数据库时使用TP提供给我们的方法就不会有问题,如添加商品时我们调用了add方法。唯一要注意的就是如果我们自己拼SQL执行时就要自己来过滤了。 总结:如果要自己拼SQL语句,一定要自己再过滤一下【addslashes】,也不是直接就能过滤,还要考虑PHP服务器有没有开启自动过滤的功能,如果服务器已经开启自动过滤的功能我原创 2015-06-04 16:02:01 · 4234 阅读 · 0 评论 -
PHP的单例模式--三私一公
注意:1.外部不可以实例化,因此内部实例化函数的类型必须为静态,在类未实例化之前就已经初始化;2.静态函数只能访问静态变量,所以定义private static $instance;3.静态变量的访问写法为:类名::$变量名,在类内部可以直接写self:$instance;4.可以用instanceof这个关键字检测变量中存放的是不是当前的类实例。<?php//php下的单例原创 2015-06-26 10:40:23 · 6300 阅读 · 1 评论