使用VIM做开发

2012年4月26日 没有评论

之前习惯了IDE开发环境,但是如果没有IDE 那么只能用NOTEPAD++了吗? 如果到了linux下你怎么办呢? 其实不管在windows下还是在linux都是可以使用vim做开发的。
vim功能强大,效率高。

1、安装gvim http://gvim.en.softonic.com/ 下载安装包
2、taglist 这是一个类似于notpad++里tagsview的插件,显示出所有标签(函数)的插件
安装这个插件前 需要下载ctags56,任意找位置解压,按然后下载 taglist45.zip的压缩包,将里面的文件分别放置在gvim安装目录下的doc和plugin目录下
下载:taglist_45 ec56w32
3、启动配置

1
2
3
4
5
6
7
8
9
10
11
let Tlist_Ctags_Cmd = 'd:/ctags56/ctags.exe'    
let Tlist_Auto_Open = 1
let Tlist_Exit_OnlyWindow = 1
let tlist_actionscript_settings = 'actionscript;c:class;f:method;p:property;v:variable'
 
set encoding=utf-8
set fileencoding=utf-8
 
syntax enable
syntax on 
colorscheme desert

上面第1段是配置taglist插件的,第2段是设置编码,第3段是开启高亮和选择配色方案。

使用:Tlist 指令就能出现标签列表了。以下就是效果哦,还能代码自动补全。

简单再介绍几个命令
阅读全文…

分类: 技术文章, 服务器技术 标签:

bat文件批量删除svn目录

2011年5月6日 1 条评论

效果类似余svn export

阅读全文…

分类: 个人日记 标签:

nginx – 优化冗余路径配置。

2011年2月25日 1 条评论
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
server {
        listen       80;
        server_name  phpmyadmin.lezi.com;
        location / {
            root   /var/www/html/phpMyAdmin;
            index  index.php;
        }
            location ~ \.php$ {
                        root  /var/www/html/phpMyAdmin;
                        fastcgi_pass 127.0.0.1:9000;
                        fastcgi_index index.php;
                        fastcgi_param SCRIPT_FILENAME /var/www/html/phpMyAdmin$fastcgi_script_name;
                        fastcgi_param  PATH_INFO $request_uri;
                        include fastcgi_params;
           }
   }

上面配置中可以看出路径非常冗余,如过修改路径需要改三个地方,
其实可以set一个变量,将路径写入变量,这样就下次修改的时候就只需要修改1个变量就好了。如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
server {
        listen       80;
        server_name  phpmyadmin.lezi.com;
        set $root '/var/www/html/phpMyAdmin';
        location / {
            root   $root;
            index  index.php;
        }
            location ~ \.php$ {
                        root  $root;
                        fastcgi_pass 127.0.0.1:9000;
                        fastcgi_index index.php;
                        fastcgi_param SCRIPT_FILENAME $root$fastcgi_script_name;
                        fastcgi_param  PATH_INFO $request_uri;
                        include fastcgi_params;
           }
   }
分类: 服务器技术 标签:

php 任意进制互转类

2011年2月15日 3 条评论

之前不知道php自带有base_convert可以实现任意进制之间的转换,自己写了一个。。。。
阅读全文…

php常用技巧

2011年2月12日 1 条评论

1、写程序的时候会用到这种情况,比如对一个数字进行四舍五入取整。很多人会这样写:

1
2
3
4
input a
if a - int(a) >= 0.5 then
a =  a +1
end if

其实这个判断语句可以使用一个很简单的表达式来写

a =  fix(a + sgn(a) *0.5)

用php写作:

$a =  intval($a +  0.5 *  ($a >0 ? 1 : -1)  );

分析:
假设 a为 4.4 那么 a+0.5 = 4.9 intval()以后为4 ,假设a为4.6 a+0.5=5.1 那么intval()以后则为5,因此实现了四舍五入。
正数+0.5 , 负数则-0.5。

如果说四舍五入保留2位小数也同理。

$a = intval(a * 100 + 0.5 * ($a >0 ? 1 : -1) ) /100。

2、 求如果a-b的值,如果小于0则取0,可以写城

$result =  max(0,$a-$b);

3、导入数据时,可以选择采用csv格式 php对getcsv处理起来非常方便。

4、在替换字符串方面 str_replace()比正则表达式更高效。实际上,根据Making the Web所说,str_replace()比像ereg_replace()和 preg_replace()这样的正则表达式效率要高61%。

5、if($a==true) if($a)

6、用isset判断变量和元素是否存在速度较高

7、尽量使用三目运算

8、适当写if行语句。适当在function内使用return语句 减少分支

9、使用memcache mogodb等降低程序与数据库负担

10、临时数据可以使用sqllite记录

分类: php后台程序 标签:

Nginx之 – 基于ip和域名的虚拟主机

2011年1月6日 2 条评论

虚拟主机可以基于ip和域名配置略有不通,一起来看下。

基于域名的虚拟主机:

1
2
3
4
5
6
7
8
9
10
11
12
http{
  server{
      listen 80;
      server_name www.sgfblog.com sgfblog.com; #第1个虚拟主机的域名列表,空格隔开
      location /{ ... }
  }
  server{
      listen 80;
      server_name www.apisky.net; #第2个虚拟主机的域名列表
      location /{ ... }
  }
}

基于ip的虚拟主机:

这类配置常用于本地开发,众所周知A类ip地址为1-126,而B类则为128-191。其中127不是凭空消失了,而是用于回文地址。也就是说127的ip地址会指向本机。

为了方便本地有多个站点时可以配置127.0.0.1 127.0.0.2 127.0.0.3为不同站点。配置如下:
阅读全文…

nginx之 – 正向代理

2011年1月6日 没有评论

在nginx配置中加入一段server配置。就可以实现整正向代理了。其中resolver 代表的是设置代理的dns服务器。这里写的是google的公用dns服务器。

1
2
3
4
5
6
7
server{
       listen 8080;
       location /{
          resolver 8.8.8.8;
          proxy_pass $scheme://$host$request_uri;
       }
    }

注意:$scheme://$host$request_uri; 这个为转发到用户请求的地址,这样写可以支持多种协议。
网上的参考例子多数写的是 http://$host$request_uri; 这样的话将不支持https等的代理。

使用方法以ie为例:
工具→Internet选项→连接→局域网设置→为Lan使用代理服务器→ ip地址填写nginx所在的ip地址,端口号既为上面linsten的端口号,

php is_null, empty, isset 的区别

2010年12月18日 4 条评论

isset 判断变量是否已存在
empty 判断变量是否为空或为0
is_null 判断变量是否为NULL

变量 empty is_null isset
$a=”” true false true
$a=null true true false
var $a true true false
$a=array() true false true
$a=false true false true
$a=15 false false true
$a=1 false false true
$a=0 true false true
$a=”0” true false true
$a=”true” false false true
$a=”false” false false true
分类: php后台程序 标签: , , ,

图解 vpn客户端配置

2010年12月1日 3 条评论

以下是windows下(以xp为例)vpn客户端的配置过程。

阅读全文…

Nginx之 – Rewrite

2010年11月28日 没有评论

都知道使用apache的时候可以使用.htaccess进行为静态的重定向配置。

nginx也可以,单略有不同

首先在

/etc/nginx/nginx.conf文件内
相应的server{} 中加入以下代码,然后我们就可以在nginx.htaccess中编写rewrite规则了。

include nginx.htaccess;

ngixn rewrite 的相关指令有:if rewrite set return break等。
看个简单的例子:

if ($host ~* ^(.*?)\.sgfblog\.com$) {
set $var_host ’1′;
}
if ($host ~* ^192\.168\.1\.(.*?)$) {
set $var_host ’1′;
}
if ($host ~* ^localhost) {
set $var_host ’1′;
}
if ($host ~* ^127\.0\.0\.(.*?)$) {
set $var_host ’1′;
}
if ($var_host !~ ’1′) {
rewrite ^/(.*)$ $scheme://www.sgfblog.com/$1 redirect;
}

解释一下上述语句的意思:

上面4个if语句都是只有有一个成立就会使用set 把一个变量设置成1
最后1个语句 只要这个变量为1,就执行重定向。

$host 指的是主机名,也就是访问网址。

如果主机名不是*.sgfblog.com也不是192.168.1.*也不是localhost也不是127.0.0.*
那么将执行跳转。

rewrite ^/(.*)$ $scheme://www.sgfblog.com/$1 redirect;
/(.*)$可以匹配根任意字符路径,
$scheme://www.sgfblog.com/$1 则是被重定向到地址
$scheme 代表协议 可以说http 或 https等
$1 代表匹配时第1处符合的字符串 ,也就是原路径。

redirect代表302重定向,会在url头里改变。

if语句解说


1、变量名不能为空值或者0开头
2、可以使用等于号(=),不等于号(!=)来运算
3、可以使用正则 ~*(不区分大小写) 和 ~(区分大小写)进行匹配
4、!~和 !~*表示不匹配
5、-f 和!-f 表示文件是否存在
6、-d 和 !-d 表示目录是否存在
7、-x 和 !-x表示是否可以执行

支持的flag标签有


标签 解释
last apache中的[L]表示完成rewrite
break 终止匹配
permanent 301
redirect 302

阅读全文…