之前习惯了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 指令就能出现标签列表了。以下就是效果哦,还能代码自动补全。

简单再介绍几个命令
阅读全文…
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自带有base_convert可以实现任意进制之间的转换,自己写了一个。。。。
阅读全文…
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记录
虚拟主机可以基于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配置中加入一段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的端口号,
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 |
以下是windows下(以xp为例)vpn客户端的配置过程。
阅读全文…
都知道使用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 |
阅读全文…