文章关键字 ‘PHP’

PHP没有ASP流行?

2010年11月18日,星期四

今天看到有人说PHP没有ASP流行,真是搞笑,自己去看看TIOBE的2010年11月编程语言排行榜吧,PHP排第四,ASP排第几?当然了,ASP不是一门语言,那么假设所有的JavaScript都拿去写ASP了罢,JavaScript的排名是第十一位,仍然在PHP之后,更何况至少有90%的JavaScript都是拿来写客户端脚本的。至于VBScript?排行榜上好像找不到VBScript的影子。

其实所谓流行什么的都是浮云,学得好用什么都一样。都说ASP效率比不上PHP,虽然这的确是事实,但是效率的高低和代码的好坏有直接的关系。一个ASP高手和一个PHP菜鸟(比如我)写出来的网站对比,你说哪个的性能好?正如D大(一个PHP高手)所说,JSP、PHP、ASP.NET没有优劣之分,关键看是谁在用。

曾经在一个群里,有一个人出了一个编程练习,大概的意思就是要写一个进程守护程序,当指定的进程意外结束的时候重启该进程。我说:“这用VBS脚本可以实现。”还没来得及写代码,就有人说:“就算要用脚本实现,也要用JS,VBS那么垃圾。”我问:“作为Windows下的脚本,JS和VBS有什么区别么?”他说:“JS是C语法,VBS是VB语法,所以JS比VBS好。”我说:“哦,那你就用不垃圾的JS写个程序实现这个进程守护程序给我看看吧。”他说:“我不会写,但是我知道JS比VBS强大。”

然后我就没有再说话,我还有什么话可说呢?

用VBS实现PHP的SHA1函数

2010年09月18日,星期六

有了这个,VBS版的六维空间作弊工具就可以完成了。

依然是CAPICOM。

Function sha1(str, raw_output)
	Dim HashedData, Utility
	Set HashedData = CreateObject("CAPICOM.HashedData")
	Set Utility = CreateObject("CAPICOM.Utilities")
	HashedData.Algorithm = 0
	HashedData.Hash str	
	If raw_output Then
		sha1 = Utility.HexToBinary(HashedData.Value)
	Else
		sha1 = HashedData.Value
	End If
End Function

在Windows下源码编译PHP

2010年08月28日,星期六

最近在学习编写PHP拓展,懒得装Linux,就研究了一下在Windows下编译PHP的方法,总算搭建好了在Windows下开发PHP拓展的环境。

1、在C盘新建一个文件夹,C:\PHPDEV

2、从官网下载最新版(我这里用的是5.2.14)的PHP源码,将下tar.gz或tar.bz2压缩包保存到C:\PHPDEV,解压到当前文件夹

3、下载php win32 build extras并保存到C:\PHPDEV,解压到当前文件夹

4、获取编译好的bison.exeflex.exe,保存到桌面或者其他C:\PHPDEV以外的地方。分别打开压缩包并进入bin文件夹,将bison.exe和flex.exe复制到C:\Windows文件夹

5、假定你已经安装了Visual Studio 2008(我个人不推荐用Visual Studio 2008,推荐使用Platform SDK Febrary 2003,官方的编译版本就是用这个PSDK编译的,但是这里用Visual Studio 2008做说明),开始菜单->Microsoft Visual Studio 2008->Visual Studio Tools->Visual Studio 2008 Command Prompt,打开Visual Studio 2008命令提示行

6、用cd命令将目录切换到C:\PHPDEV\php-5.2.14

7、输入buildconf.bat,回车。这个批处理的作用是搜索所有的.w32文件并为你创建configure.js

8、输入下面的命令

cscript /nologo configure.js –without-xml –without-wddx –without-simplexml –without-dom –without-libxml –disable-zlib — without-sqlite –disable-odbc –disable-cgi –enable-cli –enable-debug –without-iconv –disable-ipv6

为什么要disable和without那么多功能呢?因为这些功能需要的库文件并没有包含在PHP的源码包中(不然会很大),这些额外的库文件需要你自己去下载(要找全不是那么容易的)。如果你不禁用这些功能,会出现编译错误。

9、输入nmake,回车

10、第9步中可能会出现文件的编码错误,找到出现错误的文件,用EditPlus选择Western European (Windows)编码打开后另存为utf-8编码,重新nmake即可

11、编译好以后切换到C:\PHPDEV\php-5.2.6\Debug_TS,测试一下

php -r "echo ‘hello,world’;"

参考链接:

Ubuntu下安装Lighttpd+PHP+MySQL

2010年07月6日,星期二

Lighttpd是轻量级的网页服务器软件,相较于其他的网页服务器,lighttpd仅需少量的内存及CPU资源即可达到同样的效能。与FastCGI下的PHP组合非常的完美。

安装包Lighttpd和PHP

sudo apt-get install lighttpd php5-cgi

启用FastCGI模式

sudo lighty-enable-mod fastcgi

重启Lighttpd进程

sudo /etc/init.d/lighttpd force-reload

安装MySQL

sudo apt-get install mysql-server

安装PHP的MySQL模块

sudo apt-get install php5-mysql

再重启一次Lighttpd进程就行了

用JavaScript实现PHP的urldecode函数

2010年07月4日,星期日

之前写过一篇《用JavaScript实现PHP的urlencode函数》,然后今天查看博客访问量的时候发现了一个来自百度知道的引用。我说过,我很讨厌百度知道之类的东东,理由我就不说了,你打开上面的链接就知道了。别人问的明明是用php的urlencode函数编码以后的东西用JavaScript怎么解码,下面的人给了我文章的链接,我写的可是怎样用JavaScript实现php的urlencode编码啊。问题都不看清楚就乱回答,还说什么“单独写个函数解决这问题”,又不给出代码。别人会写的话还问你做什么?

不要跟我提JavaScript的decodeURI函数,我在之前的文章说过,这个和php的urldecode函数根本不是一回事。下面是我根据高人的代码改写的JavaScript版的urldecode函数,参考的链接在开头提到的文章中有,就不一一列举了。和之前的urlencode函数一样,只实现了utf-8版的。

在线演示(注意在博客首页无法演示)


代码下载地址:

[download id=26]