php
文章平均质量分 55
BruceLin
这个作者很懒,什么都没留下…
展开
-
设计模式教程-单件模式
简介单件模式是设计模式里面最常见的一种,也是设计模式初学者最先碰到的一种。在php的设计模式中,单件模式往往被用来驾驽最复杂最危险的那一部分:全局变量。 开发新手刚开始常会遇到的一个模式,单件模式,解决一个杂乱,危险而让人恐惧的问题即全局变量. 几乎在每个应用程序的每个地方都有需要被访问的组件。配置变量就是其最突出的例子。 开发新手常会把一个调试变量申明为全原创 2009-07-15 15:25:00 · 522 阅读 · 1 评论 -
SQL注入
一、 注入式攻击的类型可能存在许多不同类型的攻击动机,但是乍看上去,似乎存在更多的类型。这是非常真实的-如果恶意用户发现了一个能够执行多个查询的办法的话。本文后面,我们会对此作详细讨论。如果你的脚本正在执行一个SELECT指令,那么,攻击者可以强迫显示一个表格中的每一行记录-通过把一个例如"1=1"这样的条件注入到WHERE子句中,如下所示(其中,注入部分以粗体显示):原创 2009-09-14 20:36:00 · 308 阅读 · 0 评论 -
PHP文件包含漏洞原理分析和利用方法
摘要:一、涉及到的危险函数〔include(),require()和include_once(),require_once()〕 include()&&require()语句:包括并运行指定文件。这两种结构除了在如何处理失败之外完全一样。include()产生一个警告而require()则导致一个致命错误。换句话说,如果你想在遇到丢失文件时停止处理页面就用req原创 2009-09-24 12:32:00 · 304 阅读 · 0 评论 -
重燃你的PHP安全之火
对于脚本安全这个话题好像永远没完没了,如果你经常到国外的各种各样的bugtraq上,你会发现有一半以上都和脚本相关,诸如SQL injection,XSS,Path Disclosure,Remote commands execution这样的字眼比比皆是,我们看了之后的用途难道仅仅是抓肉鸡?对于我们想做web安全的人来说,最好就是拿来学习,可是万物抓根源,我们要的不是鱼而转载 2009-09-24 17:26:00 · 344 阅读 · 0 评论 -
Smarty 定界符 花括号 大括号 函数定义 转义
使用 Smarty 模板的时候,通常都是用 ‘{’ 和 ‘}’ 作为定界符(delimiter)。有时,我们需要在 html 代码里输出大括号,如果在模板里直接写出来,会被 Smarty 的解析器认为是定界符,然后会报错:Smarty error : syntax error: unrecognized tag转载 2009-10-07 16:56:00 · 1502 阅读 · 0 评论 -
dom解析xml
php常用的有三种解析xml的方式,sax,dom,***,其中sax比较省内存,dom是直接把整个文档直接都读入内存,比较耗内存,当文档大于20M的时候,就会感觉的出来,***这种方式最简单,但相对来讲功能也简单些。这三种除了解析也都能方便地用来创建XML文档。下面介绍下DOM这种方式。 通过遍历对象的树型结构,我们可以不需要标记就显示出所有的内容。通过递归地遍历所有子节点,我们可以把这原创 2009-10-21 09:57:00 · 797 阅读 · 0 评论 -
好用的 xmlrpc-epi PHP 封装类
在 PHP 中本身带有一个用 C 语言实现的 xmlrpc 扩展,叫xmlrpc-epi。因为它是用 C 语言实现的,所以从速度上来说比用 PHP 实现的那些 xmlrpc扩展要快的多。但是在实际应用中却发现很少有人用这个扩展,大都是用 PHP 脚本实现的 xmlrpc的扩展。原因可能有以下两点:一是这个扩展需要在服务器上打开,如果没有服务器操作权限,使用这个扩展就不现实了。第二个原创 2010-01-14 11:18:00 · 950 阅读 · 0 评论 -
php伪造来路页面
$host = "www.abc.com"; //你要访问的域名$target = "/test.asp"; //你要访问的页面地址$referer = "http://www.abcdefg.com/abc.html"; //伪造来路页面$fp = fsockopen($host, 80, $errno, $errstr, 30);if (!$fp){echo "$err原创 2009-12-28 20:18:00 · 2113 阅读 · 0 评论 -
php gettext方式实现UTF-8国际化多语言(i18n)
近来随着i18n(国际化)的逐渐标准化,我也来讲一讲在PHP中如何实现国际化支持。跟其他程序语言一样,在 PHP 也可以利用 gettext套件写作 i18n 程序,实现 NLS(Native Language Support) 国际化支持,具体请参考官方文档(http://www.gnu.org/software/gettext/manual/gettext.html原创 2010-01-07 14:54:00 · 1463 阅读 · 1 评论 -
php下应对XSS攻击
本文首先简单介绍开发测试人员如何对 Web 应用进行 XSS 漏洞测试,如何借助工具绕过客户端 JavaScript 校验输入恶意数据;然后针对使用 PHP 语言构建的 Web 站点,从在输出端对动态内容进行编码、以及在服务器端对输入进行检测两方面介绍如何避免恶意的 XSS 攻击。使用 PHP 构建的 Web 应用如何避免 XSS 攻击Web 2.0 的发展为网络用户的互动提供了更多机会。用户通过原创 2010-03-21 15:12:00 · 10601 阅读 · 0 评论 -
php生成csv
csv这类文件其实就是特殊格式的文本文件(应该所有格式都是特殊格式的文本文件和二进制文件),csv不同的行体现在文本中的换行,不同的单元格用,分开,如果要单元格中包括 ,/r/n则需要用双引号来定界,如果包含双引号,则用两个双引号进行替换 文件的头信息header("Content-type: application/octet-stream");header("Content-D原创 2010-04-20 11:59:00 · 858 阅读 · 0 评论 -
没有表单的POST提交,客户端
<br /> $postXML ='<?xml version="1.0" encoding="utf-8"?><br /> <data name="bbs">'."/r/n".$data."/r/n".'</data>';<br /> //echo $postXML;exit;<br /> $host = "searchservice.bbs.com"; <br /> //构建HTTP Request Header<br /> $header = "POST /sc/web/index原创 2010-06-13 11:01:00 · 487 阅读 · 0 评论 -
比较准确地检测字符的编码是否是UTF8
<br />function valid_1byte($char) {<br /> if(!is_int($char)) return false;<br /> return ($char & 0x80) == 0x00;<br /> }<br /> <br /> function valid_2byte($char) {<br /> if(!is_int($char)) return false;<br />原创 2010-11-29 15:16:00 · 419 阅读 · 0 评论 -
php 模拟GMAIL,HOTMAIL(MSN),YAHOO,163,126邮箱登录
<br />最近一直在忙,赶在这个十一假期结束的时候,发表一下此文,为了是让这些源码开源出来<br /><br />当然这些方法可能不可取,但大致应该是这种方向了吧,由于目前做的一个UCHOME港台的站点<br /><br />咱们策划说要改一下好友邀请里面的显示方式,开始我也没有在意,当时就说行!<br /><br />到了弄这个的时候才发现,UCH里面的这个地方是用漫游型式做的,让人很是无解,啥都改不了!<br /><br />唉,既然都答应了说可以,现在实际情况不行了,所以觉得不好意思原创 2011-05-19 14:24:00 · 3185 阅读 · 0 评论 -
PHP5中PDO的简单使用
PDO(PHP Data Object) 是PHP 5新出来的东西,在PHP 6都要出来的时候,PHP6只默认使用PDO来处理数据库,将把所有的数据库扩展移到了PECL,那么默认就是没有了我们喜爱的php_mysql.dll之类的了,那怎么办捏,我们只有与时俱进了,我就小试了一把PDO。(本文只是入门级的,高手可以略过,呵呵) 【PDO是啥】 PDO是PHP原创 2009-07-15 11:00:00 · 344 阅读 · 0 评论 -
简单Rest+Json例子
rest_client.php$a = array(a=>1, b=>2,c=>I love you!,d=>31343,e=>5);$post = json_encode($a); //转化成Json$limit = 8192;$path = http://localhost/rest_api.php; //服务端接口$strin原创 2009-07-13 11:15:00 · 3055 阅读 · 0 评论 -
error_log与fwrite性能对比
error_log与fwrite写入性能对比环境CPU1: AMD Athlon(tm) 64 X2 Dual Core Processor 3600+ stepping 024G 内存10w条数据从mysql读取数据平均用时 : 0.20063090324402error_log 完成数据写入耗时:3.0148850440979fwrite 完成数原创 2009-07-10 14:46:00 · 1330 阅读 · 1 评论 -
php正则表达式中的模式修正符
下面列出了当前在 PCRE 中可能使用的修正符。括号中是这些修正符的内部 PCRE 名。修正符中的空格和换行被忽略,其它字符会导致错误。 i (PCRE_CASELESS) 如果设定此修正符,模式中的字符将同时匹配大小写字母。 m(PCRE_MULTILINE) 默认情况下,PCRE 将目标字符串作为单一的一“行”字符所组成的(甚至其中包含有换行符也原创 2009-05-17 02:18:00 · 390 阅读 · 0 评论 -
上次在CI中开发了个搜索,因为在CI中/有特殊的用法,所以需对以下字符进行特殊的编码
为了让内容在网络上传输,而不会丢失,需要对传送的内容进行url编码,上次在CI中开发了个搜索,因为在CI中/有特殊的用法,所以需对以下字符进行特殊的编码: function str($n) { $n = urlencode($n); $str1 = array(urlencode(%2F),urlencode(%3F),urlencode(%25)); $str = arra原创 2009-05-22 14:51:00 · 275 阅读 · 0 评论 -
PHP与json
PHP近年来的发展给web编程界带来更多的活力和惊喜,它使得web中某些特殊功能的实现变得如此简单,以至于我总怀疑:真的是这样吗 ? 随着web2.0的发展和成熟,ajax的运用越来越广泛。Ajax配合xml通信的技术恐怕是everybody know,但是实际上很多时候我们没有必要使用xml如此强大的功能,而是使用一个小巧精悍的“玩意”JSON(参见http://w原创 2009-05-27 11:08:00 · 845 阅读 · 0 评论 -
PHP 异常(Exception)
异常(Exception)用于在指定的错误发生时改变脚本的正常流程。什么是异常?PHP 5 提供了一种新的面向对象的错误处理方法。异常处理用于在指定的错误(异常)情况发生时改变脚本的正常流程。这种情况称为异常。当异常被触发时,通常会发生:当前代码状态被保存代码执行被切换到预定义的异常处理器函数根据情况,处理器也许会从保存的代码状态重新开始执行代码原创 2009-08-14 09:56:00 · 616 阅读 · 0 评论 -
一个好用的UTF-8截取字符数的函数
一个好用的UTF-8截取字符数的函数function mSubstr($str, $start, $length=NULL, $etc="..."){ preg_match_all("/./u", $str, $ar); if (is_null($length)) { return join("",array_slice($ar[0], $star原创 2009-08-17 13:59:00 · 558 阅读 · 0 评论 -
mysql中UNIX_TIMESTAMP()函数和php中time()函数的区别
mysql 中:UNIX_TIMESTAMP(), UNIX_TIMESTAMP(date)若无参数调用,则返回一个 Unix timestamp (1970-01-01 00:00:00 GMT 之后的秒数) 作为无符号整数。若用date 来调用 UNIX_TIMESTAMP(),它会将参数值以1970-01-01 00:00:00 GMT后的秒数的形式返回。date 可原创 2009-06-16 12:07:00 · 366 阅读 · 0 评论 -
PHP内置的不错的语言包功能
近来随着i18n的逐渐标准化,我也来讲一讲在PHP中如何实现国际化支持。跟其他程序语言一样,在 PHP 也可以利用 gettext 套件写作 i18n 程序,实现 NLS(Native Language Support) 国际化支持,具体请参考官方文档( http://www.gnu.org/manual/gettext/index.html )。实现流程:程序设计者在程序码中写入所要显示原创 2009-08-31 10:39:00 · 1028 阅读 · 0 评论 -
php获取163邮箱通讯录的方法
/** * get address list from 163 mail box */define( "COOKIEJAR", tempnam( "/tmp", "cookie" ) );class adrSnatcher{ /** * @desc: login in the 163 mail box * @param string $user原创 2009-06-27 09:41:00 · 2706 阅读 · 3 评论 -
$_SERVER
客户端浏览器是否支持GZIP压缩preg_match(/gzip/, $_SERVER[HTTP_ACCEPT_ENCODING]) 进行客户端ETAG设定header("Cache-Control: public");$etag = "f_".$forum_id; //标记字符串,可以任意修改 if (!empty($_SERVER[HTTP_IF_NONE_翻译 2009-07-07 10:22:00 · 515 阅读 · 0 评论 -
html实体
大数据量的时侯,html实体比直接输出慢非常多,可能达到百倍 有时,我们采集的数据格式是 "你好", 这个叫做html实体 ,如果我们是直接在网页上查看,那是没有问题的,但如果我们是放在文本里,那些字符怎么能看得懂呢?所以有时需要对它进行转换,方便查阅.php代码如下:echo mb_convert_encoding("你好"转载 2009-07-07 11:25:00 · 372 阅读 · 0 评论 -
统计html实体和直接输出加载速度的角本
$str = "你好";$str = str_repeat($str, 1000000);//file_put_contents(html.txt, $str);//$str = "你好";//$str = str_repeat($str, 1000000);//file_put_contents(test.txt, $str);原创 2009-07-08 11:53:00 · 336 阅读 · 0 评论 -
windows下phpdoc安装心得
windowsxp下好像不能运行最新版本的phpdoc,一直报1937行和内存只读的错误,后来换成window7下就没有问题了,看来系统必须升级了。pear收集了phpdoc,所以通过先装pear,go-pear.bat,然后输入local,一直回车安装phpdoc,pear install -o phpdocumentor,如果注释是中文的,一定要执行 iso-8859-1 到 utf-8 的替换,否则生成出来的是乱码。(把 tmp/PhpDocumentor-1.4.3/phpDocumentor/Co原创 2011-05-04 16:52:00 · 1467 阅读 · 0 评论