PHP
lzpsnake
互联网行业从业人士,PHP程序员。喜欢研究各种编程技术和网站运营。目前任职于国内知名电子商务软件供应商ShopNC。
展开
-
PHP的rawurlencode和urlencode 函数
问题:2个函数都是针对字符串转义使其适合做文件名。该用哪个?哪个更标准?结论:rawurlencode遵守是94年国际标准备忘录RFC 1738,urlencode实现的是传统做法,和上者的主要区别是对空格的转义是'+'而不是'%20'javascript的encodeURL也是94年标准,而javascript的escape是另一种用"%xxx"标记unicode编码转载 2013-01-18 14:09:27 · 384 阅读 · 0 评论 -
Facebook 的 PHP 性能与扩展性
炙手可热的 Facebook 是用 PHP 开发的。随着一些技术交流,逐渐能看到 Facebook 技术人员分享的经验。近期这个 geekSessions 站点上看到 Facebook 的 Lucas Nealan 分享的文档比较有参考价值。Cache 为 王任何一个成功的站点都有一套最合适自己的 Cache 策略。Note:这个层次图画的稍微有点问题,不是严格从上转载 2012-12-17 15:14:12 · 175 阅读 · 0 评论 -
群发“站内信”根据不同用户量,不同的数据库设计原理
在很多网站系统(如CMS系统,SNS系统等),都有“站内信”的功能。 “站内信”不同于电子邮件,电子邮件通过专门的邮件服务器发送、保存。而“站内信”是系统内的消息,说白了,“站内信”的实现,就是通过数据库插入记录来实现的。 “站内信”有两个基本功能。一:点到点的消息传送。用户给用户发送站内信;管理员给用户发送站内信。二:点到面的消息传送。管理员给用户(指定满足某一条件的用户群)群发消息转载 2012-12-28 17:25:53 · 304 阅读 · 0 评论 -
PHP性能优化Tips
1. 不要随便就复制变量有时候为了使 PHP 代码更加整洁,一些 PHP 新手(包括我)会把预定义好的变量复制到一个名字更简短的变量中,其实这样做的结果是增加了一倍的内存消耗,只会使程序更加慢。试想一下,在下面的例子中,如果用户恶意插入 512KB 字节的文字到文本输入框中,这样就会导致 1MB 的内存被消耗!BAD:$description = $_POST['des转载 2012-12-26 09:33:16 · 230 阅读 · 0 评论 -
PHP str_pad() 填充字符串函数使用说明
定义和用法str_pad() 函数把字符串填充为指定的长度。语法str_pad(string,length,pad_string,pad_type)参数描述string必需。规定要填充的字符串。length必需。规定新字符串的长度。如果该值小于原始字符串的长度,则不进行任何操作。pad_stri转载 2012-12-26 09:25:49 · 242 阅读 · 0 评论 -
php 大文件上传问题
php上传文件涉及到的参数: 几个参数调整: 0:文件上传时存放文件的临时目录。必须是 PHP 进程所有者用户可写的目录。如果未指定则 PHP 使用系统默认值 php.ini文件中upload_tmp_dir用来说明PHP上传的文件放置的临时目录。 要想上传文件,得保证服务器没有关闭临时文件和有对文件夹的写权限 1:max_execution_time 变量max_ex转载 2012-12-12 11:22:51 · 186 阅读 · 0 评论 -
php获取文件后缀名最简单有效的方法
pathinfo($filename,PATHINFO_EXTENSION);语法pathinfo(path,options)参数描述path必需。规定要检查的路径。process_sections可选。规定要返回的数组元素。默认是 all。可能的值:PATHINFO_DIRNAME -原创 2012-12-25 14:41:51 · 212 阅读 · 0 评论 -
重置zend studio 默认设置的方法
这个方法类似于手机的“恢复出厂设置”的功能,就是将所有的使用记录全部清除,用于解决zend studio使用过程中遇到的各种莫名其妙的问题,可以说是zend studio各种问题的终极解决方法~能够解决诸如zend studio没有代码提示、zend studio停止在启动画面假死、zend studio集成php手册以后不能正常使用等等等等各种疑难杂症,保证药到病除!一包见效我们说说具体步骤转载 2012-12-11 10:59:15 · 240 阅读 · 0 评论 -
PHP substr(),mb_substr()及mb_strcut的区别和用法
PHP substr()函数可以 分割文字,但要分割的文字如果包括中文字符往往会遇到问题,这时可以用mb_substr()/mb_strcut这个函数,mb_substr() /mb_strcut的用法与substr()相似,只是在mb_substr()/mb_strcut最后要加入多一个参数,以设定字符串的编码,但是 一般的服务器都没打开php_mbstring.dll,需要在php.ini在把转载 2012-12-11 09:01:06 · 279 阅读 · 0 评论 -
phpmail使用方法
这是用开源项目PHPMailer实现邮件发送 ,先下载文件,我这里下载得是5.02得版本,然后把三个class.***.php文件放到项目文件下,文件包下载地址:http://www.edongneng.com/d/file/Blog/2011-07-01/e27f09df691b79aacfdedaa0f9f94455.rarfunction postmail($to,$to_转载 2012-12-21 22:13:59 · 448 阅读 · 0 评论 -
网站集成Facebook登录教程
如果想通过Facebook登录到第三方的网站,利用Facebook站外API可以实现,下面是实现步骤。建立Facebook应用。首先你必须有一个Facebook账号,进入我的应用,建立一个Facebook应用。地址:http://www.facebook.com/developers/apps.php,步骤如下:输入应用名称验证输入转载 2012-11-19 20:09:21 · 584 阅读 · 0 评论 -
PHP Date()函数详细参数
在页面的最前页加上date_default_timezone_set(PRC); /*把时间调到北京时间,php5默认为格林威治标准时间*/date ()a: "am"或是"pm" A: "AM"或是"PM" d: 几日,两位数字,若不足则补零;从"01"至"31" D: 星期几,3个英文字母,如:"Fri" F: 月份,英文全名,如:"转载 2012-11-09 10:13:49 · 190 阅读 · 0 评论 -
ddos,dns,集群服务器攻击
003 004//查询禁止IP005 006$ip =$_SERVER['REMOTE_ADDR'];007 008$fileht=".htacce转载 2012-12-18 09:05:23 · 277 阅读 · 0 评论 -
php大量session存储到内存中,散列及过期回收
一台服务器流量比较大,因为程序的需要,session的过期时间设置的是3小时,导致/tmp下堆积了近20万的session文件。进而导致内核占用的cpu急剧上升。因为session的读写涉及到大量小文件的随机读写,并且是集中在一个目录下,iowait也急剧升高。首先考虑将session放入内存中最简单的办法莫过于将/tmp挂载为 tmpfs文件系统,也就是内存中第二步,将session转载 2013-01-03 15:52:15 · 222 阅读 · 0 评论 -
关于PHP的file_get_contents超时
set_time_limit只是设置你的PHP程序的超时时间,而不是file_get_contents函数读取URL的超时时间。从警告信息来看,是被抓取的网页出现了服务器500错误,可能是他的程序出现超时了。如果想改变file_get_contents的超时时间,可以用resource $context的timeout参数:$opts = array( 'http'=>array(转载 2013-01-17 15:54:26 · 787 阅读 · 0 评论 -
分享一个PHP下载远程图片的函数
/** * 抓取远程图片 * * @param string $url 远程图片路径 * @param string $filename 本地存储文件名 */function grabImage($url,$filename ='') { if($url =='') { return转载 2013-01-16 09:32:30 · 1174 阅读 · 0 评论 -
PHP处理多文件上传
if($_POST['submit'] == 'ok'){print_r($_FILES['file']);die;}?>test album原创 2013-01-15 17:07:23 · 375 阅读 · 0 评论 -
可以让PHP编程事半功倍的类库
在用php开发网站的时候,使用面向对象的方法确实可以提高代码复用率,减少代码冗余。而对初学者更友好的是,PHP开发网站所需要的大部分类库,网上都有十分优秀的类库存在了。作为一个程序猿当然不能重复制造轮子,所以我把平时经常会使用到的类库整理下来,希望对学习PHP的站长朋友们有用。一:采集类库,snoopy.class.php。下载:(http://www.php100.com/htm转载 2013-01-11 10:46:10 · 232 阅读 · 0 评论 -
PHP计算代码执行时间microtime()
如何计算一段php程序代码的执行消耗时间?对于系统时间,可能很多同学对php的time()函数并不陌生,可惜time()函数只返回自从 Unix 纪元(格林威治时间 1970 年 1 月 1 日 00:00:00)到当前时间的秒数.没错,是秒.我们一段php程序代码执行耗时可能并不超过一秒,所以time()并不适用.php提供了一个更为精确的时间函数microtime():转载 2013-01-09 14:39:02 · 285 阅读 · 0 评论 -
PHP集成paypal支付
PayPal支付功能其实一直在更新文档和接口,这里说的是一个简单的支付功能大概流程如下1,在网站的结账页面,设置一个提交到PayPal网站的form,里面有一些金额,商品名称,商家收款账号、结账成功后返回URL等内容,2,用户结账时,通过点击‘使用PayPal结账’的按钮到达PayPal的结账页面,输入自己的PayPal用户名和密码并确认支付3,PayPal会根据是否支转载 2013-01-08 11:12:41 · 368 阅读 · 0 评论 -
func_get_args
func_get_args是获取方法中参数的数组,返回的是一个数组,与func_num_args搭配使用;func_num_args一般写在方法中,用于计数;使用方法如下:function foo($a='gg',$b='kk'){ $numargs =func_num_args(); echo "Number of arguments: $numargs\n"转载 2013-01-07 21:26:27 · 274 阅读 · 0 评论 -
php post数据到远程
function Post($url, $post = null) { $context = array(); if (is_array($post)) { ksort($post); $context['http'] = array转载 2013-01-23 17:21:19 · 632 阅读 · 0 评论 -
文件缓存、内存缓存与静态化页面的取舍
静态和伪静态都是各有优缺点的静态的好处是你生成了html文件,那么访问量高的时候,服务器的I/O是一个瓶颈。但数据库的压力小了,而且更新的时候,需要重新生成。而伪静态刚I/O的瓶颈比静态的要小,但是数据库的压力比较大。如果访问量和并发比较大的话,就使用静态吧。================静态文件分发、分布式非常容易,使用CDN很方便,一般不过期,海量流量应付很轻松,转载 2013-01-04 21:42:28 · 1626 阅读 · 0 评论 -
PHP配合apc实现上传进度条
PHP配合apc实现上传进度条, 一直以为PHP是无法做到进度条一个动态的功能,原来还是自己的知识面不够,看到了apc扩展相关的一些文章,利用apc扩展达到了动态实现效果。根据找到相关的文章自己并在此基础上做了一些小修改。自己的服务器用的window,在这里主要针对的是window上的应用。1.服务器要支持apc扩展,没有此扩展的话,百度一下php_apc.dll ,下载一个扩展扩展要求php转载 2012-12-19 16:06:51 · 194 阅读 · 0 评论 -
PHP5 Session 详解【经典】
http协议是WEB服务器与客户端(浏览器)相互通信的协议,它是一种无状态协议。所谓无状态,指的是不会维护http请求数据,http请求是独立的,不持久的。而越来越复杂的WEB应用,需要保存一些用户状态信息。这时候,Session这种方案应需而生。PHP从4.1开始支持Session管理。Session!它是很抽象的一个概念。我们不妨先从与它几个息息相关的有迹可寻的小切入点入手,然后逐渐地转载 2013-01-03 15:58:38 · 339 阅读 · 0 评论 -
php静态方法的特点
1.静态的方法在整个应用程序其间存储在内存中,速度快,但占用内存.2.动态的方法在先声明类实例才能调用类中的方法.3.一般使用频繁的方法用静态方法,用的少的方法用动态的。静态的速度快,占内存。动态的速度相对慢些,但调用完后,立即释放类,可以节省内存,可以根据自己的需要选择是用动态方法还是静态方法。4.静态方法主要的问题就是数据同步的问题。如果你的静态方法的类中不保存私有变量那么什么问题转载 2012-09-07 11:41:13 · 353 阅读 · 0 评论 -
PHP中静态方法(static)与非静态方法的使用及区别
static关键字用来修饰属性、方法,称这些属性、方法为静态属性、静态方法。static关键字声明一个属性或方法是和类相关的,而不是和类的某个特定的实例相关,因此,这类属性或方法也称为“类属性”或“类方法”如果访问控制权限允许,可不必创建该类对象而直接使用类名加两个冒号“::”调用。static关键字可以用来修饰变量、方法。不经过实例化,就可以直接访转载 2012-09-07 09:45:40 · 410 阅读 · 0 评论 -
十一个常见的PHP安全细则
PHP本身再老版本有一些问题,比如在 php4.3.10和php5.0.3以前有一些比较严重的bug,所以推荐使用新版。另外,目前闹的轰轰烈烈的SQL Injection也是在PHP上有很多利用方式,所以要保证安全,PHP代码编写是一方面,PHP的配置更是非常关键。 我们php手手工安装的,php的默认配置文件在 /usr/local/apache2/conf/php.ini,我们最主要转载 2012-01-09 13:24:59 · 182 阅读 · 0 评论 -
PHP的SQL注入
今天从网上学习了有关SQL注入的基本技能。SQL注入的重点就是构造SQL语句,只有灵活的运用SQL 语句才能构造出牛比的注入字符串。学完之后写了点笔记,已备随时使用。希望你在看下面内容时先了 解SQL的基本原理。笔记中的代码来自网络。 ===基础部分=== 本表查询: http://127.0.0.1/injection/user.php?user转载 2012-01-08 12:12:50 · 254 阅读 · 0 评论 -
简单说说PHP优化
我们在编写程序时,总是想要使自己的程序占用资源最小,运行速度更快,代码量更少。往往我们在追求这些的同时却失去了很多东西。下面我想讲讲我对PHP优化的理解。优化的目的是花最少的代价换来最快的运行速度与最容易维护的代码。 进行大范围的优化,而不是死啃某些程序代码 我这里所说的优化,基本上都是从服务器,Apache,数据库这些方面来进行的优化,而并不是对你的PHP代码加以改进从而提高转载 2012-01-07 22:34:10 · 200 阅读 · 0 评论 -
PHP漏洞全解
摘自普瑞斯特blogPHP网页的安全性问题针对PHP的网站主要存在下面几种攻击方式:1.命令注入(Command Injection)2.eval注入(Eval Injection)3.客户端脚本攻击(Script Insertion)4.跨网站脚本攻击(Cross Site Scripting, XSS)5.SQL注入攻击(SQL injection)6.跨网站请转载 2012-01-06 11:42:54 · 667 阅读 · 0 评论 -
php 缓存方案:Memcache 基础教程
Memcache是danga.com的一个项目,最早是为 LiveJournal 服务的,目前全世界不少人使用这个缓存项目来构建自己大负载的网站,来分担数据库的压力。Memcache是什么 Memcache是danga.com的一个项目,最早是为 LiveJournal 服务的,目前全世界不少人使用这个缓存项目来构建自己大负载的网站,来分担数据库的压力。 它可以应对任意多个连接,使转载 2011-12-28 23:35:47 · 217 阅读 · 0 评论 -
Linux下的Memcache安装方法
最近在研究怎么让Discuz!去应用Memcache去做一些事情,记录下Memcache安装的过程。Linux下Memcache服务器端的安装服务器端主要是安装memcache服务器端,目前的最新版本是 memcached-1.3.0 。下载:http://www.danga.com/memcached/dist/memcached-1.2.2.tar.gz另外,Memcach转载 2011-12-28 23:46:43 · 156 阅读 · 0 评论 -
优化PHP代码的40条建议
简介英文版权归Reinhold Weber所有,中译文作者yangyang(aka davidkoree)。双语版可用于非商业传播,但须注明英文版作者、版权信息,以及中译文作者。翻译水平有限,请广大PHPer指正。1.如果一个方法可静态化,就对它做静态声明。速率可提升至4倍。2.echo 比 print 快。3.使用echo的多重参数(译注:指用逗号而不是句点)代替字符串连转载 2011-12-28 23:47:47 · 223 阅读 · 0 评论 -
PHP页面定时跳转函数
window.setTimeout("javascript:location.href=''", 800);window.setTimeout("javascript:history.back()", 1000);原创 2011-12-07 20:50:42 · 267 阅读 · 0 评论 -
php压缩HTML代码
/** * 压缩html : 清除换行符,清除制表符,去掉注释标记 * @param $string * @return 压缩后的$string * */ function compress_html($string) { $string = str_replace("\r\n", '', $string); //清除换行符 $转载 2011-12-07 20:30:35 · 249 阅读 · 0 评论 -
探讨PHP页面跳转几种实现技巧
Web系统中,从一个网页跳转到另一个网页,是LAMP项目中最常用的技术之一。页面跳转可能是由于用户单击链接、按钮等引发的,也可能是系统自动产生的。 此处介绍PHP中常用的实现页面自动跳转的方法。PHP页面跳转一、header()函数 header()函数是PHP中进行页面跳转的一种十分简单的方法。header()函数的主要功能是将HTTP协议标头(header)输出到浏览器。转载 2011-12-01 21:45:08 · 165 阅读 · 0 评论 -
PHP工程师面临的成长瓶颈
作为Web开发中应用最广泛的语言之一,PHP有着大量的粉丝,那么你是一名优秀的程序员吗?在进行自我修炼的同时,你是否想过面对各种各样的问题,我该如何突破自身的瓶颈,以便更好的发展呢? PHP工程师面临成长瓶颈 先明确这里所指的PHP工程师,是指主要以PHP进行Web系统的开发,没有使用其的语言工作过。工作经验大概在3~4年,普通的Web系统(百万级访问,千成级数据以内或业务逻辑转载 2011-11-30 21:16:32 · 213 阅读 · 0 评论 -
深入探讨PHP缓存技术
PHP,一门最近几年兴起的Web设计脚本语言,由于它的强大和可伸缩性,近几年来得到长足的发展,PHP相比传统的ASP网站,在速度上有绝对的优势,想mssql转6万条数据PHP如需要40秒,ASP不下2分钟.但是,由于网站的数据越来越多,我们渴求能更快速的调用数据,不必要每次都从数据库掉,我们可以从其他的地方,比方一个文件,或者某个内存地址,这就是PHP的缓存技术,也就是Cache技术。转载 2012-01-09 13:27:28 · 201 阅读 · 0 评论 -
优秀的PHP开发者是怎样炼成的
PHP是一门高效的网络编程语言,由于它具有编写灵活、运行快速等优点,迅速成为Web程序员的首选语言。那么怎样才能成为一个优秀的PHP开发者呢? 要成为一名PHP编程高手并不容易,并不像很多人想象的那样,只要能够飞快地编写几条简单的代码去解决一个复杂的问题就是PHP编程高手了,真正的PHP高手还需要考虑更多的其它问题。以下三条准则是一名成熟的PHP程序员在编程中应该首先遵循的准则。转载 2012-01-09 13:28:56 · 210 阅读 · 0 评论