[php]在IIS下安装PHP5.3.28

服务器上的php版本一直都是5.2,最近需要用到一些类或者方法(如:FilesystemIterator,此类需要5.3以上版本才支持)来实现功能,但是总是提示此函数无法找到。所以只好升级服务器的php版本。请看如下步骤!

第一步:安装FastCgi for IIS6

下载地址:http://www.iis.net/download/fastcgi

20140122100021

选择 x86或者download x86,下载下来名称为 fcgisetup_1.5_rtw_x86.msi。

安装后会在C:\WINDOWS\system32\inetsrv\目录下多出了5个文件

fcgiconfig.js,fcgiext.dll,fcgiext.ini,fcgilicense.rtf,fcgireadme.htm

这个时候在IIS6的”WEB服务扩展”里就多出了一个FastCGI Handler

20140122095413

 

第二步: 下载并安装PHP 5.3.28

下载地址:http://windows.php.net/download/

可以选择PHP 5.3.28 No Thread Safe 或者PHP 5.3.28 Thread Safe

20140122095849

 

解压该压缩包,放置于C盘的php5.3.28目录下

1. 在C盘新建php5.3.28文件夹

2. 在D盘新建PHP5.3.28/tmp临时文件文件夹

3. 并对以上两个文件夹设置users权限(可写可读可修改)

4. 将“C:\php5.3.28”下的所有.dll文件,复制到“C:\WINDOWS\system32”下,如果有提示需要覆盖文件,建议覆盖。

5. 到FastCGI注册PHP,修改C:\windows\system32\inetsrv\fcgiext.ini文件,到文件底部,填入以下信息:

[Types]
php=PHP
[PHP]
ExePath=C:\PHP5\php-cgi.exe

6. 修改PHP.ini

回到“C:\php5”,默认情况下是找不到php.ini这个文件的,请先将“php.ini-development”重命名为”php.ini”,并双击其打开文件。

(1) 修改php所在目录

查找

extension_dir = “./”

并修改为

extension_dir = “C:/PHP5.3.28/ext”

(2) 修改临时文件夹路径

查找

;upload_tmp_dir =

去掉“;”,并修改为

upload_tmp_dir = “D:/PHP5.3.28/tmp”

(3)

查找

fastcgi.impersonate = 1,去掉前面的“;”

查找

short_open_tag = Off ,去掉前面的“;”,并把Off改为On

(4)  查找 Windows Extensions

; extension=php_curl.dll
; extension=php_gd2.dll
; extension=php_gettext.dll
; extension=php_ldap.dll
; extension=php_mbstring.dll
; extension=php_exif.dll
; extension=php_mysql.dll
; extension=php_mysqli.dll
; extension=php_sockets.dll
; extension=php_xmlrpc.dll

将以上常用组件前面的“;”去掉。

(5) 修改时区

查找;date.timezone =,去掉前面的“;”,并改为“date.timezone = Asia/Shanghai”

第三步:配置IIS

打开Internet信息服务管理器,在”网站”上点右键→属性→主目录→配置,进入“应用程序配置”,请看如下截图:

20140122101235

 

20140122101316

 

添加扩展名:.php

20140122101429

提示:如果在C:\WINDOWS\system32\inetsrv\目录下找不到fcgiext.dll这个文件的话,证明没有安装FastCgi for IIS6,请看第一步!

第四步:重启IIS服务!

第五步: 测试PHP网站!!完毕!!!

 

[JQuery]实现设为首页以及加入收藏功能

在做企业官网项目的时候,总是会有设为首页、加入收藏功能,索性用JS实现出来,保存博客当中,以备下次所用!

设为首页

//设为首页
function SetHome(obj){
	try{
		obj.style.behavior='url(#default#homepage)';
		obj.setHomePage('http://blog.jhonse.com');
	}catch(e){
		if(window.netscape){
			try{
				netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
			}catch(e){
				alert("抱歉,此操作被浏览器拒绝!\n\n请在浏览器地址栏输入“about:config”并回车然后将[signed.applets.codebase_principal_support]设置为'true'");
			};
		}else{
			alert("抱歉,您所使用的浏览器无法完成此操作。\n\n您需要手动将'http://blog.jhonse.com/'设置为首页。");
		};
	};
};

 加入收藏

//加入收藏
function AddFavorite(sURL, sTitle){
	try{
		window.external.addFavorite(sURL, sTitle);
	}
	catch(e){
		try{
			window.sidebar.addPanel(sTitle, sURL, "");
		}
		catch(e){
			alert("加入收藏失败,请使用Ctrl+D进行添加");
		};
	};
};

[thinkphp]自定义一个信息对话框(lightbox_me)

在使用discuzx中有一个Message以及Dialog方法来显示信息对话框。今天写项目的时候,需要一个信息对话框,所以就着手利用lightbox_me插件来写一个做备用。

注:lightbox_me插件官网 http://buckwilson.me/lightboxme/

第一步: 下载lightbox_me插件

20140108191010

 

第二步:实现对话框弹出功能,并异步获得信息对话框数据

1.  在尾部文件中添加对话框代码

<div id="Message" style="display: none;"></div>

2. 在头部文件中导入js文件

<script type="text/javascript" src="__PUBLIC__/Js/jquery-2.0.3.min.js"></script>
<script type="text/javascript" src="__PUBLIC__/Js/jquery.json-2.4.min.js"></script>
<script type="text/javascript" src="__PUBLIC__/Js/jquery.lightbox.js"></script>

3.  添加链接标签

<a class="btn" href="{:U("Message",array('id'=>1))}" id="Dialog">在线调查</a>

4. 自定义弹出窗口方法(main.js文件)

$("#Dialog").click(function() {
        var href = $(this).attr("href");
        $.get(href).success(function(data) {
            if (typeof (data) != "object") {
                data = $.parseJSON(data);
            }
            $("#Message").html(data.info);
        });
        $("#Message").lightbox_me({
            centered: true,
            onLoad: function() {
                $('#Message').find('input:first').focus();
            }
        });
        return false;
    });

5. 异步获得信息

public function Message($id = null) {
        $data = "";
        switch ($id){
            //在线调查
            case 1:{
                $data = '<h3>在线调查<a href="javascript:void(0);" class="close"></a></h3>
                        <div class="Message_Content">
                        <form action="'.U('Diaocha').'" method="post">
                            <table>
                                <tr><td>1. 你的性别是?</td></tr>
                                <tr><td><input type="radio" name="sex" value="1">男</td></tr>
                                <tr><td><input type="radio" name="sex" value="0">女</td></tr>
                                <tr><td>2. 你的年龄是?</td></tr>
                                <tr><td><input type="radio" name="age" value="0">18岁以下</td></tr>
                                <tr><td><input type="radio" name="age" value="1">18-35</td></tr>
                                <tr><td><input type="radio" name="age" value="2">35-60</td></tr>
                                <tr><td><input type="radio" name="age" value="3">60岁以上</td></tr>
                                <tr><td>3. 对图书交易会的评价?</td></tr>
                                <tr><td><input type="radio" name="pingjia" value="0">不好(简单说下理由)<input type="text" value="" name="liyou" /></td></tr>
                                <tr><td><input type="radio" name="pingjia" value="1">一般</td></tr>
                                <tr><td><input type="radio" name="pingjia" value="2">不错,希望能继续开展这样的交易会</td></tr>
                                <tr><td>4. 您喜欢的书有哪些?(填写最喜欢的10本书名)</td></tr>
                                <tr><td><textarea name="content"></textarea></td></tr>
                                <tr><td colspan="2"><input type="submit" name="submit" value="提交" /></td></tr>
                            </table>
                        </form>
                        </div>';
                $this->success($data);
            }
        }
    }

第三步: 效果

20140108192106

【Thinkphp】字符串截取函数msubstr

使用Thinkphp开发项目,需要对列表文字进行截取,而不至于文字溢出。一开始使用的是PHP再带的截取函数substr,发现此函数只对英文或者数字截取,然后再使用mb_substr,还是出现问题:会出现乱码。查看thinkphp文档发现有对应的函数(msubstr),可以来实现以上截取中英文功能。请看如下代码:

<span>{$zhzj.desc|msubstr=0,156}<a href=”{:U(‘page’,array(“nav”=>$zhzj[‘name’]))}”>[查看详情]</a>

如果直接在模板中使用该函数的话,可能会提示此函数找不到,解决方法:导入thinkphp函数库即可。代码如下:

Load(‘extend’);

msubstr函数使用方法:

msubstr($str, $start=0, $length, $charset=”utf-8″, $suffix=true)

  • $str:要截取的字符串
  • $start=0:开始位置,默认从0开始
  • $length:截取长度
  • $charset=”utf-8″:字符编码,默认UTF-8
  • $suffix=true:是否在截取后的字符后面显示省略号,默认true显示,false为不显示

 

【技术杂谈】在网吧测试不同浏览器打开百度

本想在网吧加班写项目,结果用360浏览器打开百度网址竟然打不开,请看如下截图:

20140103223618

 

然后再用360浏览器打开百度知道,请看如下截图:

20140103223641

 

难道是百度服务器出现问题了么?还是被360浏览器给屏蔽了?干脆就来测试下不同浏览器打开百度。

搜狗浏览器打开的效果:

20140103225504

 

谷歌浏览器打开的效果:

20140103225514

 

遨游浏览器打开的效果:

20140103225531

 

这个竟然可以打开,纠结当中…

百度浏览器打开的效果:

20140103225856

 

IE浏览器打开的效果:

20140103225550

 

火狐浏览器打开的效果:

20140103232233

 

从上述所知,只有IE浏览器以及遨游浏览器可以打开百度网站。

然后接着来PING下百度,看到底能否PING通,请看截图:

20140103223741

 

奇迹了,竟然PING不通,也可以打开网站。证明以上两个浏览器太牛了,网页数据不知是从哪里获取?

然后接着来PING百度其它子网站,以百度知道为例:

20140103232744

 

对比百度和百度知道的IP,竟然有所不同。难道还放在不同的服务器上?

去看看本机的hosts文件,看域名解析是否有没有篡改?

结果一打开hosts文件,才明白被网吧给忽悠了….

20140103233338

 

最后测试的结果是hosts文件对百度链接进行了解析,跳到另外一台服务器上去了…

把对应的百度链接解析干掉,就可以正常访问了.

至于IE浏览器和遨游浏览器为什么可以打开?大家可以看看如下链接就知道了…

20140103233704

 

20140103233744

 

关电脑睡觉去…

【技术排行榜】2014年1月编程语言排行榜:Transact-SQL力挫Objective-C 夺得桂冠

2014年1月份编程语言排行榜出炉,本月前三甲依然为:C、Java、Objective-C。

回顾2013,Transact-SQL成了最大的赢家,在2013年有了几乎1%的增长率(+0.98%增长率),紧随其后的分别是Objective-C,增长率为0.81%、F#增长率为0.53%。Transact-SQL所获得的较大增长率似乎有点让人吃惊,因为它的主要应用领域微软数据库引擎SQLServer人气正在丧失。

正如大家近10年所观察到的,编程语言的流行度在很大程度上是受到外部趋势影响。目前,随着移动应用和Web开发的发展,Android(主要是Java)、iOS(Objective-C)已成为主流的移动平台,Windows Phone(C#)也正在迎头赶上。在Web开发领域,尽管HTML5热潮依旧,但并没有看到太多的变化,JavaScript仍然是这一领域最大的赢家(依然稳坐在第9名的位置)。而其替代者似乎越来越糟,CoffeeScript排在170、TypeScript为205、Dart为124。

下面一起来看下本月的前20名榜单:

0cfbc0be-4d5a-36f1-8858-0018c347a364

 

前10名编程语言走势图:

0d728166-ccb3-3984-acb7-c0b2d6a0add0

 

以下是21-50编程语言排名:

排名 名称 比例
21 Logo 0.592
22 SAS 0.585
23 PostScript 0.520
24 Assembly 0.495
25 PL/I 0.488
26 ABAP 0.474
27 COBOL 0.461
28 Fortran 0.412
29 Lua 0.375
30 Ladder Logic 0.369
31 C shell 0.355
32 Tcl 0.351
33 Scala 0.337
34 RPG (OS/400) 0.337
35 Max/MSP 0.331
36 Go 0.326
37 OpenEdge ABL 0.310
38 ActionScript 0.308
39 ML 0.292
40 Ada 0.280
41 Common Lisp 0.275
42 cT 0.268
43 Haskell 0.265
44 R 0.252
45 JScript.NET 0.246
46 Emacs Lisp 0.242
47 Prolog 0.220
48 Modula-3 0.215
49 Scheme 0.213
50 S-PLUS 0.212

后50名编程语言如下:

(Visual) FoxPro, 4th Dimension/4D, Alice, ATLAS, Automator, Awk, Bash, bc, Bourne shell, C++/CLI, cg, CL (OS/400), Clean, DiBOL, Erlang, Factor, Forth, GNU Octave, Groovy, Icon, Inform, Informix-4GL, Io, J, J#, JavaFX Script, LabVIEW, M4, Magic, Mathematica, Modula-2, Moto, MS-DOS batch, NATURAL, NXT-G, PILOT, Processing, Programming Without Coding Technology, Pure Data, Q, S, Scratch, Seed7, Standard ML, TOM, VBScript, VHDL, X10, Xojo, Z shell

TOP10编程语言回顾

下面是前10名编程语言这些年的变化情况,请注意的是,这些都是每12个月的平均位置。
19f067b0-2a83-3b4c-836d-d5f77f977ba7

历年编程语言桂冠

9e0bbe9c-5403-398e-9c1b-f035129468d8

 

必须声明,这个榜单本身采集的是英文世界的数据,虽然在反映趋势上有一些参考意义,但与中国的实际情况不完全符合,而且,这张采样本身也有相当大的局限性。

【说明】

TIOBE编程语言社区排行榜是编程语言流行趋势的一个指标,每月更新,这份排行榜排名基于互联网上有经验的程序员、课程和第三方厂商的数量。排名使用著名的搜索引擎(诸如Google、MSN、Yahoo!、Wikipedia、YouTube以及Baidu等)进行计算。请注意这个排行榜只是反映某个编程语言的热门程度,并不能说明一门编程语言好不好,或者一门语言所编写的代码数量多少。

这个排行榜可以用来考查你的编程技能是否与时俱进,也可以在开发新系统时作为一个语言选择依据。排行榜的详细定义可以参考这里(英文)。