koala是一个前端预处理器语言图形编译工具

越来越多的同学开始使用less/sass等预处理器的方式来编写CSS与JavaScript,很大程度上提高了工作效果,但编译文件是个繁琐的事情,使用命令行的方式操作起来很累,目前也已经有一些图形工具,比如mac下的codekit, windows下有winLess、simpless等。Codekit是一个很棒的工具,它是一个商业的软件且只有Mac版本。而windows下现有的工具都比较简陋,无法满足我们日常开发需求。
今天向大家推荐一个新工具Koala,功能齐全,跨平台运行,同时还是一个开源软件。

Koala是什么?

koala是一个前端预处理器语言图形编译工具,目前已支持Less、Sass、Compass、CoffeeScript。

下载地址:http://koala-app.com/index-zh.html

功能特性:

  • 多语言支持:支持less、sass、coffeescript、compass framework;
  • 实时编译:监听文件,当文件改变时自动执行编译,这一切都在后台运行,无需人工操作;
  • 编译选项:支持自定义设置各个语言的编译选项;
  • Import文件监听:关联import文件,如import文件改变,源文件将自动进行编译。
  • 代码压缩:less & sass支持编译后自动压缩代码;
  • 错误提示:在编译时如果遇到语法的错误,koala将在右下角弹出错误信息,方便开发者定位代码错误位置;
  • 跨平台:windows、linux、mac 完美运行;?

如何使用:

使用方法

使用技巧:

切换为中文语言:打开设置窗口,system – locales选择为中文,重启后生效。

设置全局编译选项:在设置窗口中勾选各个编译选项后,新增加的文件将应用该设置。

批量处理功能:文件列表可进行多文件选择,选中后打开右键,可批量设置输出目录与批量编译文件。

如果你在使用过程中遇到问题,可在github上向作者反馈:https://github.com/oklai/koala/issues/new

koala

关于WordPress不使用插件制作标题关键词描述

不用插件如何在wordpress中设置标题、关键词和描述,这个问题是很多时候都在谈论的问题。百度一下,也会出现很多的答案。答案大致相同,但是不是每一个都可以用。很多都是直接复制改了改伪原创发了出去,新手根本搞不好。这里我把一般出现的情况给大家说说。

因为WP插件泛滥,很多的插件不是很合适用,所以我个人就是选择不用插件。

要做到优化的效果,一样是PHP的语句判断,代码如下:
————————————————————————————————————————————————
<head>
<?php
if ( is_home ())
{
$description = “aaaaaaaaaaaaaaaaa”;
$keywords = “aaaaaa”;
}
else if ( is_single ())
{
if ( $post->post_excerpt)
{
$description = $post->post_excerpt;
} else {
$description = mb_strimwidth(strip_tags(apply_filters(‘the_content’,$post->post_content)
),0,220);
}
$keywords = “”;
$tags = wp_get_post_tags($post->ID);
foreach ($tags as $tag ) {
$keywords = $keywords.$tag->name.”,”; }
} else if ( is_category())
{
$description = category_description();
$keywords = single_cat_title(p, false);
}
if (is_tag()){
$description = tag_description();
if(!$description){
$description = single_tag_title(p, false) ;}
$keywords = single_tag_title(p, false);
}
?>
<?php if ( is_home() ) { ?><title><?php bloginfo(‘name’); ?>|<?php bloginfo(‘description’); ?></title><?php } ?>
<?php if ( is_single() ) { ?><title><?php echo trim(wp_title(”,0)); ?>|<?php bloginfo(‘name’); ?></title><?php } ?>
<?php if ( is_category() ) { ?><title><?php single_cat_title(); ?>|<?php bloginfo(‘name’); ?></title><?php } ?>
<?php if (function_exists(‘is_tag’)) { if ( is_tag() ) { ?><title><?php single_tag_title(“”, true); ?>|<?php bloginfo(‘name’); ?></title><?php } ?>
<?php if ( is_month() ) { ?><title><?php the_time(‘F’); ?> | <?php bloginfo(‘name’); ?></title><?php } ?>
<meta name=”description” content=”<?php echo $description; ?>”>
<meta name=”keywords” content=”<?php echo $keywords; ?>”>
——————————————————————————————————————————————————

具体不做解释,百度一下全是解释。这里我主要是强调:

else if ( is_category())

{

$description = category_description();

$keywords = single_cat_title(p, false);

}

修改之后,大家会发现分类目录的描述会多出<p>标签,还有一个换行。解决这个问题也是使用PHP的判断语言,我们只需要在functions.php里加入一下代码:

function seosir_deletehtml($str) {

return trim(strip_tags($str));

}

add_filter(‘category_description’, ‘seosir_deletehtml’);

注意要写在<?php ? ??>之间。做完这些大家有时候会发现博客乱码,或可能首页直接有错误提示。估计这也是一直困扰很多新手的问题。首先告诉大家这个是因为编码的原因。WP是使用UTF-8无BOM的编码,一定确保所有的模版文件编码统一。这样博客就设置好了。

SEO先生发布,固定地址:关于WordPress不使用插件制作标题关键词描述?转载请注明。

40个技巧优化您的PHP代码

1.如果一个方法能被静态,那就声明他为静态的,速度可提高1/4;

2.echo的效率高于print,因为echo没有返回值,print返回一个整型;

3.在循环之前设置循环的最大次数,而非在在循环中;

4.销毁变量去释放内存,特别是大的数组;

5.避免使用像__get, __set, __autoload等魔术方法;

6.requiere_once()比较耗资源;

7.在includes和requires中使用绝对路径,这样在分析路径花的时间更少;

8.如果你需要得sexinsex到脚本执行时的时间,$_SERVER[‘REQUSET_TIME’]优于time();

9.能使用字符处理函数的,尽量用他们,因为效率高于正则;

10.str_replace字符替换比正则替换preg_replace快,但strtr比str_replace又快1/4;

11.如果一个函数既能接受数组又能接受简单字符做为参数,例如字符替换,并且参数列表不是太长,可以考虑多用一些简洁的替换语句,一次只替换一个字符,而不是接受数组做为查找和替换参数。大事化小,1+1>2;

12.用@掩盖错误会降低脚本运行速度;

13.$row[‘id’]比$row[id]速度快7倍,建议养成数组键加引号的习惯;

14.错误信息很有用;

15.在循环里别用函数,例如For($x=0; $x < count($array); $x), count()函数在外面先计算; 16.在方法里建立局部变量速度最快,97xxoo几乎和在方法里调用局部变量一样快; 17.建立一个全局变量要比局部变量要慢2倍; 18.建立一个对象属性(类里面的变量)例如($this->prop++)比局部变量要慢3倍;

19.建立一个未声明的局部变量要比一个初始化的局部变量慢9-10倍;

20.声明一个未被任何一个函数使用过的全局变量也会使性能降低(和声明相同数量的局部变量一样),PHP可能去检查这个全局变量是否存在;

21.方法的性能和在一个类里面定义的方法的数目没有关系,因为我添加10个或多个方法到测试的类里面(这些方法在测试方法的前后)后性能没什么差异;

22.在子类里方法的性能优于在基类中;

23.只调用一个参数并且函数体为空的函数运行花费的时间等于7-8次$localvar++运算,而一个类似的方法(类里的函数)运行等于大约15次$localvar++运算;

24.Surrounding your string by ‘ instead of ” will make things interpret a little faster since php looks for variables inside “…” but not inside ‘…’. Of course you can only do this when you don’t need to have variables in the string.

25.当输出字符串时用逗号代替点分割更快些。注意:这只对echo起作用,这个函数能接受一些字符串作为参数;

26.在apache服务器里一个php脚本页面比相应的HTML静态页面生成至少要多花2-10倍的时间,建议多用些静态HTML页面和少量的脚步;

27.除非你的安装了缓存,不然你的php脚本每次被访问都需要被重编译。建议安装个php缓存程序,这样通过去除一些重复的编译来很明显的提高你20-100%的性能;

28.建议用memcached,高性能的分布式内存对象缓存系统,提高动态网络应用程序性能,减轻数据库的负担;

29.使用ip2long()和long2ip()函数把IP地址转成整型存放进数据库而非字符型。这几乎能降低1/4的存储空间。同时可以很容易对地址进行排序和快速查找;

30.使用checkdnsrr()通过域名存在性来确认部分email地址的有效性,这个内置函数能保证每一个的域名对应一个IP地址;

31.如果你在使用php5和mysql4.1以上的版本,考虑使用mysql_*的改良函数mysqli_*;

32.试着喜欢使用三元运算符(?:);

33.在你想在彻底重做你的项目前,看看PEAR有没有你需要的。PEAR是个巨大的资源库,很多php开发者都知道;

34.使用highlight_file()能自动打印一份很好格式化的页面源代码的副本;

35. 使用error_reporting(0)函数来预防潜在的敏感信息显示给用户。理想的错误报告应该被完全禁用在php.ini文件里。可是如果你在用一个共享的虚拟主机,php.ini你不能修改,那么你最好添加error_reporting(0)函数,放在每个脚本文件的第一行(或用 require_once()来加载)这能有效的保护敏感的SQL查询和路径在出错时不被显示;

36.使用 gzcompress() 和gzuncompress()对容量大的字符串进行压缩(解压)在存进(取出)数据库时。这种内置的函数使用gzip算法能压缩到90%;

37.通过参数变量地址得引用来使一个函数有多个返回值。你可以在变量前加个“&”来表示按地址传递而非按值传递;

38.Fully understand “magic quotes” and the dangers of SQL injection. I’m hoping that most developers reading this are already familiar with SQL injection. However, I list it here because it’s absolutely critical to understand. If you’ve never heard the term before, spend the entire rest of the day googling and reading.

39.使用strlen()因为要调用一些其他操作例如lowercase和hash表查询所以速度不是太好,我们可以用isset()来实现相似的功能,isset()速度优于strlen();

40.When incrementing or decrementing the value of the variable $i++ happens to be a tad slower then ++$i. ?This is something PHP specific and does not apply to other languages, so don’t go modifying your C or Java code thinking it’ll suddenly become faster, it won’t. ++$i happens to be faster in PHP because instead of 4 opcodes used for $i++ you only need 3. Post incrementation actually causes in the creation of a temporary var that is then incremented. While pre-incrementation increases the original value directly. This is one of the optimization that opcode optimized like Zend’s PHP optimizer. It is a still a good idea to keep in mind since not all opcode optimizers perform this optimization and there are plenty of ISPs and servers running without an opcode optimizer.

HTML5对互联网的若干积极影响

HTML5将会使网页图片具有更强大互动性:

上一代互联网加载的图片为GIF或JPG文件。新型互联网可以在Canvas对象中加载图片。许多好的图片库应运而生,它们中的一些增强了互联网图片的互动 性。现在,JavaScript层可以根据数据计算数值和作图。如果开发人员具备了时间和能力,所有内容可以变得更加活灵活现,文本属性将会越来越少。

HTML5使得网络视频使用更加方便:

HTML5新增了视频标签功能,它帮助网络 开发人员更容易地在网页中添加视频。此前,仅有Flash、Silverlight和JavaFX程序员可以这样做,而现在Jquery和PHP开发人员 也可以在网页中添加视频。HTML5新型视频标签启用后,HTML网页的文字会越来越少,视频却会越来越多。

HTML5或将提升网络安全:

网络浏览器插件是由不同程序开发团队以不同标准、不同 开发模式并在不同安全模型下编写的。其中一些插件的安全性显然不如其他插件高。随着插件数量激增,安全性问题跟踪的复杂性也随之增加。HTML5的出现替 代了许多插件,进而可能会消除插件引发的网络安全问题。

HTML5将简化互联网开发:

Lookingglass Cyber Solutions公司的开发人员比尔?米尔(Bill Mill)简要地解释了这一原因,他表示:“我很喜欢HTML5,因为我使用的是一个统一的开发环境。在HTML5标准下做开发,我只需要用互联网浏览 器、JavaScript和DOM就可以了,而不需要在Flash和HTML5开发环境之间来回切换。”他进一步补充道:“网络用户也会注意到这一点,因 为Flash文件将可以在一个网页中打开。”HTML5提供了统一开发语言(JavaScript)、统一的数据模型(XML和DOM)和绑定文本、音 频、视频和图形的一整套规范(CSS)。

近年来,浏览器提供商产生出相当多的互联网浏览器的改进思路,正是这些思路逐渐发展为第五代HTML标准的原型。第五代HTML正式规范早在6年前已经开始制订,许多HTML5的用户惊讶地发现,尽管规范制订得很好,但它距离成为标准还有很长的差距。

HTTP状态码(HTTP Status Code)

一些常见的状态码为:
200 – 服务器成功返回网页 404 – 请求的网页不存在 503 – 服务不可用
所有状态解释:

1xx(临时响应)
表示临时响应并需要请求者继续执行操作的状态代码。

代码 说明
100 (继续) 请求者应当继续提出请求。 服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。
101 (切换协议) 请求者已要求服务器切换协议,服务器已确认并准备切换。

2xx (成功)
表示成功处理了请求的状态代码。
代码 说明
200 (成功) 服务器已成功处理了请求。 通常,这表示服务器提供了请求的网页。
201 (已创建) 请求成功并且服务器创建了新的资源。
202 (已接受) 服务器已接受请求,但尚未处理。
203 (非授权信息) 服务器已成功处理了请求,但返回的信息可能来自另一来源。
204 (无内容) 服务器成功处理了请求,但没有返回任何内容。
205 (重置内容) 服务器成功处理了请求,但没有返回任何内容。
206 (部分内容) 服务器成功处理了部分 GET 请求。

3xx (重定向)
表示要完成请求,需要进一步操作。 通常,这些状态代码用来重定向。

代码 说明
300 (多种选择) 针对请求,服务器可执行多种操作。 服务器可根据请求者 (user agent) 选择一项操作,或提供操作列表供请求者选择。
301 (永久移动) 请求的网页已永久移动到新位置。 服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置。
302 (临时移动) 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。
303 (查看其他位置) 请求者应当对不同的位置使用单独的 GET 请求来检索响应时,服务器返回此代码。
304 (未修改) 自从上次请求后,请求的网页未修改过。 服务器返回此响应时,不会返回网页内容。
305 (使用代理) 请求者只能使用代理访问请求的网页。 如果服务器返回此响应,还表示请求者应使用代理。
307 (临时重定向) 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。

4xx(请求错误)
这些状态代码表示请求可能出错,妨碍了服务器的处理。

代码 说明
400 (错误请求) 服务器不理解请求的语法。
401 (未授权) 请求要求身份验证。 对于需要登录的网页,服务器可能返回此响应。
403 (禁止) 服务器拒绝请求。
404 (未找到) 服务器找不到请求的网页。
405 (方法禁用) 禁用请求中指定的方法。
406 (不接受) 无法使用请求的内容特性响应请求的网页。
407 (需要代理授权) 此状态代码与 401(未授权)类似,但指定请求者应当授权使用代理。
408 (请求超时) 服务器等候请求时发生超时。
409 (冲突) 服务器在完成请求时发生冲突。 服务器必须在响应中包含有关冲突的信息。
410 (已删除) 如果请求的资源已永久删除,服务器就会返回此响应。
411 (需要有效长度) 服务器不接受不含有效内容长度标头字段的请求。
412 (未满足前提条件) 服务器未满足请求者在请求中设置的其中一个前提条件。
413 (请求实体过大) 服务器无法处理请求,因为请求实体过大,超出服务器的处理能力。
414 (请求的 URI 过长) 请求的 URI(通常为网址)过长,服务器无法处理。
415 (不支持的媒体类型) 请求的格式不受请求页面的支持。
416 (请求范围不符合要求) 如果页面无法提供请求的范围,则服务器会返回此状态代码。
417 (未满足期望值) 服务器未满足”期望”请求标头字段的要求。

5xx(服务器错误)
这些状态代码表示服务器在尝试处理请求时发生内部错误。 这些错误可能是服务器本身的错误,而不是请求出错。

代码 说明
500 (服务器内部错误) 服务器遇到错误,无法完成请求。
501 (尚未实施) 服务器不具备完成请求的功能。 例如,服务器无法识别请求方法时可能会返回此代码。
502 (错误网关) 服务器作为网关或代理,从上游服务器收到无效响应。
503 (服务不可用) 服务器目前无法使用(由于超载或停机维护)。 通常,这只是暂时状态。
504 (网关超时) 服务器作为网关或代理,但是没有及时从上游服务器收到请求。
505 (HTTP 版本不受支持) 服务器不支持请求中所用的 HTTP 协议版本。