前段时间遇到过页面问题,在一个固定大小的容器中有一大段文字内容,别的浏览器都能正常显示完整,但是google chrome中却发现不能显示完成。追查到原因是设置了字体大小为10px,别的浏览器默认都支持,但是chrome默认情况下是不支持字体大小小于12px,如果小于这个,它会使用12px来代替。据说是为了人性化考虑才有此限制,因为通常字体小于12px看不太清楚,费眼睛。
人性化归人性化,但是还是需要使用12px以下的字体怎么办?很简单,只需要使用:-webkit-text-size-adjust:none; 即可。例如:
//针对某些特定容器不限制
.classname {
-webkit-text-size-adjust:none;
...
}
//当前页面所有容器都不限制
*{
-webkit-text-size-adjust:none;
}
目前很多网站可以为用户分配一个自己定义的二级域名,例如:myname.netingcn.com,但实际访问的地址可能为www.netingcn.com/user.php?uid=myname。要使其能正常工作,首先在DSN解析那里需要配置泛域名解析,接下来在nginx配置文件中设置rewrtie即可。nginx配置如下:
server {
listen 80;
server_name *.netingcn.com;
...
if ($host ~* ^(......)\.netingcn\.com) {
set $sub_name $1;
rewrite ^/ /user.php?uid=$sub_name last;
}
...
这里假设所有的6个字符的子域名都是用户自定义域名,然后对其进行rewrite。另外可以通过set指令把表达式中的某些信息存放在一个变量中,而后可以使用它。
nginx可以在配置文件中对某些内置变量进行判断,从而实现某些功能。例如:防止rewrite、盗链、对静态资源设置缓存以及浏览器限制等等。由于nginx配置中有if指令,但是没有对应else指令,所以判断要分为匹配和不匹配。字符串表达式支持正则表达式,能设定大小写是否敏感。因此共有四个操作符,如下:
- ~ 区分大小写(大小写敏感)匹配成功,可用正则表达式
- ~* 不区分大小写匹配成功,可用正则表达式
- !~ 区分大小写匹配失败,可用正则表达式
- !~* 不区分大小写匹配失败,可用正则表达式
- = 精确匹配普通字符串,匹配成功后停止匹配其他规则
- ^~ 匹配成功后停止匹配其他规则
HTTP_HOST是客户端请求时封装在HTTP request header中,而SERVER_NAME是web服务器中配置文件定义的。这两个值有时是相同的,但不能说他们就是一样的,因为这个起决于服务器的WEB server 配置。例如使用nginx作为为web 服务器,配置如下:
server {
listen 80;
server_name *.netingcn.com;
....
}
假设访问 http://www.netingcn.com/test.php,这是使用$_SERVER['HTTP_HOST']得到的结果为:www.netingcn.com,而$_SERVER['SERVER_NAME']则是*.netingcn.com
mysql安装成功后可以看到已经存在mysql、information_schema和test这个几个数据库,information_schema库中有一个名为COLUMNS的表,这个表中记录了数据库中所有表的字段信息。知道这个表后,获取任意表的字段就只需要一条select语句即可。例如:
select COLUMN_NAME from information_schema.COLUMNS
where table_name = 'your_table_name';
上述的做法有一点问题,如果多个数据库中存在你想要查询的表名,那么查询的结果会包括全部的字段信息。通过DESC information_schema.COLUMNS可以看到该表中列名为TABLE_SCHEMA是记录数据库名,因此下面的写法更为严格
select COLUMN_NAME from information_schema.COLUMNS
where table_name = 'your_table_name'
and table_schema = 'your_db_name';
centos5.7自带的python版本是2.4,可以通过源代码编译安装的方式来升级到2.7。源代码可以到python的官方网站下载,下载解压后后执行:
./configure
make all
make install
make clean
make distclean
不出意外,应该可以在/usr/local/bin/看到python2.7文件,也就说明2.7安装成功。接下来要做的就是通过软链接的方式让系统默认使用2.7,操作如下:
mv /usr/bin/python /usr/bin/bak_python
ln -s /usr/local/bin/python2.7 /usr/bin/python
现在升级就算完成了,不过由于yum使用的python是2.4这个版本,所有yum不能用了,解决这个问题也很简单,只需要修改/usr/bin/yum文件,把第一行的#!/usr/bin/python换成#!/usr/bin/python2.4即可。
使用secureCRT的都知道,可以同时打开多个session连接一台或多台服务器,假设需要在两个或以上的服务器上执行相同的操作,例如编译安装相同的软件,最原始的办法就是在每个上执行一遍相同操作。不过可以使用“chat window”的方式来同时向两个服务器发送相同命令。具体操作如为:在view菜单中选中Chat Window,此时在secureCRT最下方会出现一个窗口,在里面点击鼠标邮件,然后选择“Send Chat to All Tabs”,此时在里面输入命令,当前secureCRT打开的所有session都会执行输入的命令。
vi的强大自不必说了,使用vi编辑文件时可以使用命令快速的实现文本替换。下面介绍它的几种模式
替换当前行第一个OLD为NEW
:s/OLD/NEW
替换当前行所以OLD为NEW
:s/OLD/NEW
退换当前文件中的所有OLD为NEW
:%s/OLD/NEW/g
除了上述的几种替换模式,还可以指定两个行号,把他们之间所有的OLD替换称NEW,
语法为,第一个#号表示开始行,第二个#号表示截止行
:#,#s/OLD/NEW/g
替换第三行到第五行所有OLD为NEW
:3,5s/OLD/NEW/g
其中两个行号也可以只出现一个,省略的那个表示为光标所在的行,例如:
:,5s/OLD/NEW/g 把光标所在行到第5行所有OLD替换为NEW
:5,s/OLD/NEW/g 把第5行到光标所在行所有OLD替换为NEW
另外最后一行可以使用$表示,所以
:%s/OLD/NEW/g 等价于 :1,$s/OLD/NEW/g
Mac下可以使用command+shift+3组合快捷键来把当前屏幕图像保存在桌面,如果只是需要某个特定的区域,可以用组合键command+shift+4,当按下后鼠标会变成一个十字,这时候就可以选取区域了,取消截图点击右键即可。另外当按下组合键command+shift+4后再按空格键,这时鼠标变成照相机图像,可以对某个窗口、菜单或Dock进行截图。
上述截图都是直接把图片保存到桌面,如果想把图片同时保留在剪切板中,只要在上述组合键的基础上加上一个control键盘即可。例如:command+control+shift+3就把当前屏幕图像保存到桌面,同时剪切板中也存在,可以粘贴到Photoshop中进行编辑了。
在js获取当前光标在输入框的位置,可以使用如下方法,兼容IE、chrome、firefox以及safari
function getCursortPosition(domObj) {
var position = 0;
if (document.selection) { //for IE
domObj.focus();
var sel = document.selection.createRange();
sel.moveStart('character', -domObj.value.length);
position = sel.text.length;
} else if (domObj.selectionStart || domObj.selectionStart == '0') {
position = domObj.selectionStart;
}
return position;
}