Archive for the ‘PHP’ Category

FastCGI 不完全高级指南(PHP版,Windows平台)

April 28, 2009 by SLJ | Category:Apache/Nginx, PHP | No Comment 2,869

今天又在配置服务器,又看到FastCGI,一直对其概念不是很明确,所以今天顺便就上网查了查明确一下,来源网上,转载过来

一、FastCGI是什么?

  FastCGI是语言无关的、可伸缩架构的CGI开放扩展,其主要行为是将CGI解释器进程保持在内存中并因此获得较高的性能。众所周知,CGI解释器的反复加载是CGI性能低下的主要原因,如果CGI解释器保持在内存中并接受FastCGI进程管理器调度,则可以提供良好的性能、伸缩性、Fail-Over特性等等。

FastCGI的官方站点在 http://www.fastcgi.com

  FastCGI的工作原理是:

  1、Web Server 启动时载入FastCGI进程管理器(IIS ISAPI或Apache Module);

  2、FastCGI进程管理器自身初始化,启动多个CGI解释器进程 (在任务管理器中可见多个php-cgi.exe)并等待来自Web Server的连接。

  3、当客户端请求到达Web Server时,FastCGI进程管理器选择并连接到一个CGI解释器。Web server将CGI环境变量和标准输入发送到FastCGI子进程php-cgi.exe。

  4、FastCGI子进程完成处理后将标准输出和错误信息从同一连接返回Web Server。当FastCGI子进程关闭连接时,请求便告处理完成。FastCGI子进程接着等待并处理来自FastCGI进程管理器(运行在 WebServer中)的下一个连接。 在正常的CGI模式中,php-cgi.exe在此便退出了。

  在上述情况中,你可以想象 CGI通常有多慢。每一个Web请求PHP都必须重新解析php.ini、重新载入全部dll扩展并重初始化全部数据结构。使用FastCGI,所有这些都只在进程启动时发生一次。一个额外的好处是,持续数据库连接(Persistent database connection)可以工作。

More »

PHP Quebec 2009 PHP全球聚会PPT下载

April 20, 2009 by SLJ | Category:PHP | No Comment 1,528

PHP全球聚会在加拿大举行, 目前已经有一些PPT和文档出来了,让我们先睹为快:

4月编程语言排行榜:脚本语言占据半壁江山

by SLJ | Category:PHP | No Comment 994

TIOBE今日公布了2009年4月的编程语言排行榜,本期前十的榜单与上期相比没明显变化,Java、C、C++依然以绝对优势占据前三甲的位置;排名第四到十位的分别是PHP、VB、Python、C#、JavaScript、Perl和Ruby。Ruby经过数月的艰难爬升后终于进入前十,上期第十名Delphi下滑一位,排在第十一位。

仔细分析本期榜单可以看出,前十名中的PHP、Python、JavaScript、Perl、Ruby均为脚本级语言(榜单中的Visual Baisc未列入脚本级语言,但在ASP和ASP.NET中,如果选择VB作为开发语言,则是以VB Script这种脚本进行编程的);撇开应用场景和项目规模不说,至少在使用率上,脚本语言已经占据了编程语言的半壁江山。

p1

More »

十大WordPress的SEO优化技巧

April 12, 2009 by SLJ | Category:PHP | 7 Comments 2,934

    WORDPRESS系统本身,默认安装的情况下运用默认模板,实际上对搜索引擎并不友好,并没有针对搜索引擎进行很好的设想,下面我介绍一些技巧和方法可以使得WORDPRESS能否对搜索引擎更为友好。

1、文章URL链接结构的优化

  PERMALINK里面要包含POSTNAME.一般的服务器都支持MOD_REWRITE功能,运用这个功能可以优化PERMALINK(永久链接),在OPTION-PERMALINK里的COMMON OPTIONS里进行设置,我比较倾向于运用/%YEAR%/%MONTHNUM%/%POSTNAME%.HTML这种链接结构,一来链接目录只有两级,利于索引,二来这种链接结构和BLOGSPOT和MOVABLE TYPE的链接结构一致,比较利于系统平滑迁移或切换。POSTNAME运用英文,如果是写英文BLOG的话,系统会自动将标题的POST SLUG做为POSTNAME.

More »

半小时教你学会正则表达式

April 11, 2009 by SLJ | Category:Javascript, PHP | 1 Comment 3,432

Regular Expression Manual

今天发了一篇关于Apache Rewrite的日志,因为配置都是用正则表达式写的,就想翻翻以前的QQ空间,把关于正则表达式的内容贴出来。
因为是以前从网上摘的,也忘了是哪摘的了(以前没有写来源的习惯),不过在谷歌上把标题打进去会发现很多相同的文章。但是本帖结合了一些东西,所以会比原文内容丰富一些。

首先来看看百度百科的解释:一个正则表达式,就是用某种模式去匹配一类字符串的一个公式。 [百度百科释义]

想必很多人都对正则表达式都头疼.今天,我以我的认识,加上网上一些文章,希望用常人都可以理解的表达方式.来和大家分享学习经验.
  开篇,还是得说说 ^ 和 $ 他们是分别用来匹配字符串的开始和结束,以下分别举例说明
  ”^The”: 开头一定要有”The”字符串;
  ”of despair$”: 结尾一定要有”of despair” 的字符串;
  那么,
  ”^abc$”: 就是要求以abc开头和以abc结尾的字符串,实际上是只有abc匹配
  ”notice”: 匹配包含notice的字符串
  你可以看见如果你没有用我们提到的两个字符(最后一个例子),就是说 模式(正则表达式) 可以出现在被检验字符串的任何地方,你没有把他锁定到两边

   More »

Apache Rewrite 规则详解

by SLJ | Category:Apache/Nginx, PHP | 28 Comments 25,186

在开篇之前:
我想说这篇文章其实是我刚刚接触Rewrite的时候学习的文档,应属转载,但是在这里我不想写明原地址,原因是文章中大多数给出的配置命令经实验都是错误的。需要原文的可以在谷歌上搜索一下”Apache Rewrite 规则详解”
好在我对正则表达式有所了解,把原文的代码都通过自己的理解改写了一下,并都能够达到题设的要求,并联想需求添加了例子。
本文是经过我实验后修改有效的,如果还是出现500错误请去掉 # 及后面的注释(也许有些环境不支持中文注解),如果还是错误请在下面给我留言。

1、Rewrite规则简介:

Rewirte主要的功能就是实现URL的跳转,它的正则表达式是基于Perl语言。可基于服务器级的(httpd.conf)和目录级的(.htaccess)两种方式。如果要想用到rewrite模块,必须先安装或加载rewrite模块。方法有两种一种是编译apache的时候就直接安装rewrite模块,别一种是编译apache时以DSO模式安装apache,然后再利用源码和apxs来安装rewrite模块。

基于服务器级的(httpd.conf)有两种方法,一种是在httpd.conf的全局下直接利用RewriteEngine on来打开rewrite功能;另一种是在局部里利用RewriteEngine on来打开rewrite功能,下面将会举例说明,需要注意的是,必须在每个virtualhost里用RewriteEngine on来打开rewrite功能。否则virtualhost里没有RewriteEngine on它里面的规则也不会生效。

基于目录级的(.htaccess),要注意一点那就是必须打开此目录的FollowSymLinks属性且在.htaccess里要声明RewriteEngine on。

2、举例说明:
More »

用PHP上传图片并修改尺寸

April 10, 2009 by SLJ | Category:PHP | No Comment 3,713

对于开发一个WEB2.0的网站,对于用户上传图片的功能是少不了的,上传后的图片需要自动调整尺寸,以生成缩略图,无论从页面载入速度上,服务器负重上来看,调整尺寸都是必不可少的。

贴上一段用PHP上传图片并修改尺寸的代码,初学者可以看看。也可以自己修改修改,写成类。

原文地址:Image Uploading and Resizing with PHP

一、HTML代码部分

二、上传图片并保存至服务器的代码 (upload.php)
More »

40个迹象表明你还是PHP菜鸟

April 2, 2009 by SLJ | Category:PHP | 4 Comments 1,572

40 signs you really are a lousy PHP programmer

From:http://reinholdweber.com/?p=19
英文版权归Reinhold    Weber所有,中译文作者yangyang(aka    davidkoree)。双语版可用于非商业传播,但须注明英文版作者、版权信息,以及中译文作者。翻译水平有限,请广大PHPer指正。

你是PHP菜鸟,如果你:

1. 不会利用如phpDoc这样的工具来恰当地注释你的代码
2. 对优秀的集成开发环境如Zend StudioEclipse PDT视而不见
3. 从未用过任何形式的版本控制系统,如Subclipse
4. 不采用某种编码与命名标准,以及通用约定,不能在项目开发周期里贯彻落实
5. 不使用统一开发方式
6. 不转换(或)也不验证某些输入或SQL查询串(译注:参考PHP相关函数
7. 不在编码之前彻底规划你的程序
8. 不使用测试驱动开发
9. 不在错误开启状态下进行编码和测试(译注:参考PHP函数error_reporting
10. 对调试器的好处视而不见
11. 不重构你的代码
12. 不使用类似MVC模式把程序的不同层次划分开
13. 不知道这些概念:KISS, DRY, MVC, OOP, REST
14. 不用return而是直接在你的函数或类中输出(echo/print)内容
15. 对单元测试或通用测试的优点视而不见
16. 总是返回硬编码的HTML,却不返回纯粹的数据,字符串,或对象
17. 总是对“消息”和“配置参数”进行硬编码
18. 不对SQL查询语句做优化
19. 不使用__autoload(译注:参考PHP手册相关描述
More »

30个WordPress统计插件

March 25, 2009 by SLJ | Category:PHP | 3 Comments 2,896

作者:Sean P. Aune 原文:30+ WordPress Plugins for Statistics
翻译:Riku 译文:30多个Wordpress统计插件

[singlepic id=1 w=320 h=240 mode=web20 float=center]

在Blog成长的过程中,你需要知道有哪些人访问了你的Blog?他们为什么会到来?从何而来?又转向哪里?下面这个列表中的插件可以帮助你统计这些数据,以便让你为你的潜在广告发布商提供详实的访问者情况数据。

面向Blogger拥有者的统计插件

AWStats Xtended Info – AWstat增加插件。

Bluetrait Event Viewer (BTEV) – 可跟踪用户的登录、删除,无效用户名等情况,可增强安全性。

Bsuite – 跟踪页数访问次数,搜索关键字,显示最佳文章,在文章底部显示关联文章等等。

CountPosts – 显示文章阅读次数。

More »

关于CVS和SVN

March 24, 2009 by SLJ | Category:PHP, Projects, Web Structure | No Comment 1,390

今天忽然想起来CVS和SVN。所以去百度百科把两个定义都查了下:

CVS:

http://baike.baidu.com/view/20982.htm

SVN:

http://baike.baidu.com/view/183128.htm

http://baike.baidu.com/view/429581.htm

↑ Top