PHP正则表达式 /i, /is, /s, /isU等

PHP正则表达式 /i, /is, /s, /isU等 都是些什么东西呢?

i 匹配大小写

s 模式中的圆点元字符(.)匹配所有的字符,包括换行符

x 模式中的空白字符除了被转义的或在字符类中的以外完全被忽略,在未转义的字符类之外的 # 以及下一个换行符之间的所有字符,包括两 头,也都被忽略

A (PCRE_ANCHORED) 如果设定了此修正符,模式被强制为“anchored”,即强制仅从目标字符串的开头开始匹配即自动在模式开头加上^。

D (PCRE_DOLLAR_ENDONLY) 如果设定了此修正符,模式中的美元元字符仅匹配目标字符串的结尾。没有此选项时,如果最后一个字符是换行符的话,美元符号也会匹配此字符之前(但不会匹配 任何其它换行符之前)。如果设定了 m 修正符则忽略此选项。Perl 中没有与其等价的修正符。?合肥网站建设公司

S 当一个模式将被使用若干次时,为加速匹配起见值得先对其进行分析。如果设定了此修正符则会进行额外的分析。目前,分析一个模式仅对没有单一固定起始字符的 non-anchored 模式有用。

U (PCRE_UNGREEDY) 本修正符反转了匹配数量的值使其不是默认的重复,而变成在后面跟上“?”才变得重复。这和 Perl 不兼容。也可以通过在模式之中设定 (?U) 修正符来启用此选项。

X (PCRE_EXTRA) 此 修正符启用了一个 PCRE 中与 Perl 不兼容的额外功能。模式中的任何反斜线后面跟上一个没有特殊意义的字母导致一个错误,从而保留此组合以备将 来扩充。默认情况下,和 Perl 一样,一个反斜线后面跟一个没有特殊意义的字母被当成该字母本身。当前没有其它特性受此修正符控制。即:贪婪模式,最 大限度匹配 如:/a[\w]+?e/U匹配abceadeddd中的abceade而不是abce,如果不加U修正,则匹配abce? u (PCRE_UTF8) 此修正符启用了一个 PCRE 中与 Perl 不兼容的额外功能。模式字符串被当成 UTF-8。本修正符在 Unix 下自 PHP 4.1.0 起可用,在 win32 下自 PHP 4.2.3 起可用。

AMD规范及require.js用法(Javascript模块化编程)

网页越来越像桌面程序,需要一个团队分工协作、进度管理、单元测试等等……开发者不得不使用软件工程的方法,管理网页的业务逻辑。Javascript模块化编程,已经成为一个迫切的需求。理想情况下,开发者只需要实现核心的业务逻辑,其他都可以加载别人已经写好的模块。Javascript社区做了很多努力,在现有的运行环境中,实现”模块”的效果。本文总结了当前"Javascript模块化编程"的最佳实践,说明如何投入实用。虽然这不是初级教程,但是只要稍稍了解Javascript的基本语法,就能看懂。

一、原始写法

模块就是实现特定功能的一组方法。

只要把不同的函数(以及记录状态的变量)简单地放在一起,就算是一个模块。

function m1(){

//…

}

function m2(){

//…

}

上面的函数m1()和m2(),组成一个模块。使用的时候,直接调用就行了。

这种做法的缺点很明显:”污染”了全局变量,无法保证不与其他模块发生变量名冲突,而且模块成员之间看不出直接关系。

二、对象写法

为了解决上面的缺点,可以把模块写成一个对象,所有的模块成员都放到这个对象里面。

var module1 = new Object({

_count : 0,

m1 : function (){

//…

},

m2 : function (){

//…

}

});

上面的函数m1()和m2(),都封装在module1对象里。使用的时候,就是调用这个对象的属性。

module1.m1();

但是,这样的写法会暴露所有模块成员,内部状态可以被外部改写。比如,外部代码可以直接改变内部计数器的值。

module1._count = 5;

三、立即执行函数写法

使用”立即执行函数”(Immediately-Invoked Function Expression,IIFE),可以达到不暴露私有成员的目的。

var module1 = (function(){

var _count = 0;

var m1 = function(){

//…

};

var m2 = function(){

//…

};

return {

m1 : m1,

m2 : m2

};

})();

使用上面的写法,外部代码无法读取内部的_count变量。

console.info(module1._count); //undefined

module1就是Javascript模块的基本写法。

文章来源:http://www.darewe.com/news/news-146.html

批量修改Mysql数据库的数据表前缀方法

多个网站共用一个Mysql数据库时,为使数据库管理不混乱,一般采用不同的网站使用不同前缀名的方式进行区分。而如何批量修改已有数据库的前缀名呢?全部导出修改后再导入?还是一个表一个表的修改?今天道维网络要介绍的是相对简单的批量修改数据库中表前缀的方法,适用于修改数据库中相同前缀且数据表较多的情况。

批量修改Mysql数据表前缀的方法

假定修改名为“host881_1”的数据库中前缀为“liukun_”的表,并将所有符合条件表的前缀修改为“darewe_”。

用phpMyAdmin打开要修改前缀的数据库host881_1,执行以下SQL语句(其中加粗斜体字是需要根据实际需求替换的):

Select CONCAT( ‘ALTER TABLE ‘, table_name, ‘ RENAME TO ‘, replace(table_name,’liukun_’,’darewe_’),’;’)

from information_schema.tables where TABLE_SCHEMA = ‘host881_1’ and table_name LIKE ‘liukun_%’;

批量修改Mysql数据表前缀的方法

在执行SQL语句生成的页面上点击“导出”,选择“自定义”->“直接显示为文本”,CSV格式,清空“内容分隔符”为空。

?

执行导出功能后,到达结果窗口如下,复制文本框中的内容:

批量修改Mysql数据表前缀的方法?

进入数据库“host881_1”的SQL执行窗口,将代码粘贴到SQL文本框中,执行。看一下相关数据表是不是已经修改完成了。

合肥网站建设公司道维网络提醒各位数据操作有风险,请在操作前备份数据。由于软件版本等原因,操作仅供参考,因本文修改数据库导致丢失或出错的,本司不承担责任。

文章来源:http://www.darewe.com/news/news-102.html

合理的设置PS快捷键可以大大提高你的工作效率

快捷键操作一直是Photoshop高手的专利,熟练运用ps快捷键不但可以让别人觉得你很牛叉,还可以提高工作效率。不过默认情况下,Photoshop还有很多命令并没有设置相应的快捷键,合理的设置哪些ps快捷键可以大大提高你的工作效率,如果你认为这个ps技巧不错,一起分享给大家吧!……

1.显示、隐藏和隔离图层

这个快捷键大大节省了工作时间。一旦开始使用这个快捷键,我们就再也不用点击图层面板上的眼睛图标了。设置这个快捷键的好处是它可以用来打开或关闭选中的图层。如果想检查单个图层或一组特定的图层对最终作品的影响,只需选中这些图层,按下设置的显示/隐藏图层命令的快捷键即可。

建议:设置F3来显示/隐藏图层。设置Command/Ctrl+F3隔离选中的图层。

2.转换为智能对象和编辑内容

智能对象或许是Photoshop无损操作中最重要的一个元素,但很奇怪的是,竟然没有为它们设置默认的快捷键。我喜欢使用两个智能对象快捷键,一个用于将图层转化为智能对象,一个用于编辑其内容。当编辑一个智能对象的内容时,也可以双击图层的缩略图,但同样很耗费时间。例如,双击一次需要1s,一天需要操作近100次,这意味着浪费了2min。那么一周浪费了10min,一年将浪费了10h。一个简单的快捷键一年可以节省整整一天的工作时间。

建议:设置F5来转换为智能对象。设置Command/Ctrl+F5来编辑其内容。

3.调整属性面板

显示和隐藏控制面板操作也可以设置相应的快捷键。我倾向于将其设置为功能键,这样就不需要同时按住Command/ctrl键。我为经常需要显示或隐藏的两个面板设置了自定义快捷键,这样,在不需要使用时将其因此,就可以节省大量的屏幕空间。

建议:设置F7为显示/隐藏调整面板。设置F8为显示/隐藏属性面板。

4.排列:平铺和合并至标签栏

这两个选项可通过Window工具栏-排列中查看。使用这些命令,可在网格中快速地切换浏览所有打开的文档,并将其中一个打开,而其余的文档则折叠在标签中。不幸的是,这个命令无法使用同样的快捷键进行后退或前进,只能设置两个不同的快捷键。可以为它们设置两个相似的快捷键,这样易于在两种模式下进行切换。

建议:设置Command/Ctrl+F来平铺排列。设置Command/Ctrl+Shift+F来折叠标签。

5. Camera Raw 滤镜

Camera Raw 滤镜使利用Photoshop在任何图层中直接使用Camera Raw插件的所有功能成为可能。如果将它们应用到一个智能对象,甚至可以将它们作为智能滤镜完全无损的使用。

这个新滤镜是在Photoshop CC中引进的。我热衷于使用Camera Raw调整,因此,我立刻为Camera Raw 滤镜设置了快捷键,它为我节省了很多时间。这个滤镜只能在RGB模式中使用,但有一招,可以使你在CMYK文档中使用该快捷键。将该智能对象的来源设置为RGB,那么也可在CMYK颜色模式下使用。

建议:设置Command/Ctrl + Shift + R为激活Camera Raw滤镜。

6.转化为段落/点文本

在Photoshop中有两种创建独立的、完全可编辑图层的方法。如果只点击画布上的文字工具,将创建一个点型图层,它不能对文本自动断行。如果需要自动断行,则需要创建段落型图层。创建段落型图层需要点击并拖拽画布上的文字工具,以为段落定义一个区域。在该类型的菜单中,会发现可以将这两种类型进行相互转化。

建议:设置Command/Ctrl + Shift + P来切换段落或点文本。

7.取消所有选择的图层

某些情况下,可能需要确认在Photoshop中没有选中任何图层。在选择菜单下有一个取消选择图层的选项,但没有默认的快捷键。我喜欢为其设置一个Command/Ctrl + Shift + A 的快捷键,在InDesign中该快捷键有同样的作用。

建议:设置Command/Ctrl + Shift +A来取消所有选择的图层。

8.显示/隐藏所有效果

当一个文档中有多个图层,并有多个图层样式时,想快速查看所使用的图层样式的效果时,会变得比较困难。利用图层菜单下的显示/隐藏所有效果命令可以轻松的查看所使用的图层样式的效果。同样可以为它设置相应的快捷键以使操作更便捷。

建议:设置Command/Ctrl + Shift + H 来显示/隐藏所有图层效果。

9.混合画笔工具

最后一个,但并非最不重要,混合画笔值得拥有一个自定义快捷键。这个工具主要是与画笔工具一起使用,画笔工具的默认快捷键是B。为何不为混合画笔工具设置一个与B相邻的快捷键N呢?N默认下被设置为3D工具,但这个工具没有混合画笔工具常用。混合画笔工具可以将不同的颜色精美融合在一起,并减少照片的噪点。

建议:设置N键为混合画笔工具。

资料来源:http://www.darewe.com/news/news-101.html

使用CSS Sprites就好像玩拼图游戏一样

在大家还在拨号上网的“远古时期”,由于网速的限制,页面开发者都喜欢把网页里面的图片字节数控制的非常小,往往在一个图片文件夹里散落着n多的小碎图。随着网络技术的发展,网速的提升,大家越来越重视页面的加载速度、页面效率问题,过去的那些小图便成为了前端开发者的眼中钉,因为每加载一张图片都会产生一次浏览器请求数,发起的请求数越多那么页面加载的速度也越慢。还有当页面加载时,图片一个个的零星显示,鼠标经过时候背景闪白等也都是我们不能忍受的。于是乎将页面中的背景图整合到一起,利用“background-image”,“background- repeat”,“background-position”的组合进行背景定位的技术被广泛使用与了页面构建中,这就是CSS Sprites。当然CSS Sprites技术也存在着维护不便,内存占用大等等的缺点。

上面这些只是对CSS Sprites技术的一个普及。作为一个开发者我们应该对它有一个更全面的认识,挖掘深度内容,这样才能有利于我们效率开发,团队协作。

头疼的多人拼图游戏

使用CSS Sprites,就好像玩拼图游戏一样。一张白画布,那么多图怎么放到里面去才会完美?这是个让人纠结的事。而且在实际在工作场景中,我们面临着项目开发时间紧张,UI设计图要分期提供,多人协同开发一个项目等等问题。这些问题非常容易让我们在大项目中迷失,造成CSS拼图混乱,维护及其困难的情况。

定好规则,其实拼图也挺好玩的。

先期的准备工作

应对一个项目后期维护成本大的问题,我们最好的解决方案就是在开始前制定一系列的规范来限制问题的产品。好的开始是成功的一半。对于CSS Sprites,在项目开始前,我们要充分认识一个产品,同UI设计师做好良好的沟通,对我们未来组成我们Sprites图的各个元素有个大体的概念,比如我们的背景拼图可能包括什么。

一个好的Sprite画布是必须的

网页设计里面,Grid系统是必不可少的,好的Grid能解决我们很多排版问题。Grid系统同样适用于CSS Sprites。我们需要创建好一个优秀的画板,剩下的工作就是将元素合理的置于画板中了。

原文来源:合肥网站建设公司?http://www.darewe.com/news/news-98.html