sed 获取html中链接

sed的tutorials http://sed.sourceforge.net/grabbag/scripts/ http://sed.sourceforge.net/grabbag/tutorials/ 一个获取html中链接的sed脚本 #! /bin/sed -nf # Join lines if we have tags that span multiple lines :join /<[^>]$/ { N; s/[ ]\n[ ]/ /; b join; } # Do some selection to speed the thing up /<[ ]\([aA]|[iI][mM][gG]\)/!b # Remove extra spaces before/after the tag name, change img/area to a s/<[ ]\([aA]|[iI][mM][gG]|[aA][rR][eE][aA]\)[ ]\+/<a /g # To simplify the regexps that follow, change href/alt to lowercase # and replace whitespace before them with a single space s/<a\([^>]\)[ ][hH][rR][eE][fF]=/<a\1 href=/g s/<a\([^>]*\)[ ][aA][lL][tT]=/<a\1 alt=/g # To simplify the regexps that follow, quote the arguments to href and alt s/href=\([^" ...

August 5, 2009 · notsobad

imagemagick制作gif动画

参考这里: http://www.imagemagick.cn/ convert -delay 20 frame*.gif animation.gif convert -delay 20 frame1.gif -delay 10 frame2.gif -delay 5 frame3.gif animation.gif convert frame1.gif -page +50+100 frame2.gif -page +0+100 frame3.gif animation.gif convert -loop 50 frame*.gif animation.gif convert +adjoin images.* frames%d.gif 测试一下,效果很不错 511 ~/desktop/pic>for i in IMG_;do convert -sample 400x300 $i thumb-$i;done 514 ~/desktop/pic>convert -delay 40 thumb-IMG_01 jj.gif 515 ~/desktop/pic>animate jj.gif

August 4, 2009 · notsobad

Jquery的插件开发

Jquery的插件开发,试了一下,还是挺简单的。 http://docs.jquery.com/Plugins/Authoring [How to write jQuery plugin.](http://www.easyjquery.com/jquery-plugins/how-to-write- jquery-plugin) http://mattberseth.com/blog/2008/06/glowbuttons_writing_my_first_j.html 乱写的,没意义代码 (function($){ $.test = { log : function(str){ console.log(str); }, now : function(){ console.log(new Date()); }, demo : function(option){ option = $.extend({ size : 100, width : 40 }, option); this.log(option); } }; $.fn.xx = function(){ return this.each(function(){ console.log(this.className); }); }; })(jQuery); html中: $(function(){ $.test.log('aaaa'); $.test.now(); $.test.demo({size:23}); $('div').xx(); });

August 3, 2009 · notsobad

grep查找进程存在与否

linux下查看进程存不存在: 517 ~>ps -elf|grep -w ‘cron’|grep -v grep 5 S root 3179 1 0 80 0 - 925 hrtime 09:02 ? 00:00:00 /usr/sbin/cron 下面这个比较巧妙: 518 ~>ps -efl|grep -w [c]ron 5 S root 3179 1 0 80 0 - 925 hrtime 09:02 ? 00:00:00 /usr/sbin/cron ps时会出现grep这个进程,看下面的: 1: grep cron => “grep cron” 2: grep [c]ron => “grep [c]ron” 但是grep cron 和 grep [c]ron 的实际效果都是查找cron这个字符串 很明显的只有1的时候会把grep本身给找出来。 ...

July 31, 2009 · notsobad

prototype's getElementsByClassName

一个有意思的问题 http://ejohn.org/blog/getelementsbyclassname-pre-prototype-16/ prototype有一个getElementsByClassName的方法,添加在document对象上 他们是这样做的 if (!document.getElementsByClassName) document.getElementsByClassName = function(instanceMethods){ // ... }; 上面的代码实际上还给返回的数组添加了新的方法,如.each, 我们可能这样用 document.getElementsByClassName("monkey").each(Element.hide); 但是Firefox3和Safari 3.1出来后,这几个浏览器本身支持getElementsByClassName方法,也是在document上,然后问题来了。 浏览器自身的document.getElementsByClassName(“monkey”) 是没有.each方法的,一个bug出现了 ...

July 31, 2009 · notsobad

Action script的作用域

在看action script,看到了变量作用域,实际上和javascript是一样的。 查看原文 变量的"作用域"是指可在其中通过引用词汇来访问变量的代码区域。“全局"变量是指在代码的所有区域中定义的变量,而"局部"变量是指仅在代码的某个部分定义的变量。在 ActionScript 3.0 中,始终为变量分配声明它们的函数或类的作用域。全局变量是在任何函数或类定义的外部定义的变量。例如,下面的代码通过在任何函数的外部声明一个名为 strGlobal 的全局变量来创建该变量。从该示例可看出,全局变量在函数定义的内部和外部均可用。 var strGlobal:String = “Global”; function scopeTest() { trace(strGlobal); // 全局 } scopeTest(); trace(strGlobal); // 全局 可以通过在函数定义内部声明变量来将它声明为局部变量。可定义局部变量的最小代码区域就是函数定义。在函数内部声明的局部变量仅存在于该函数中。例如,如果在名为 localScope() 的函数中声明一个名为 str2 的变量,该变量在该函数外部将不可用。 function localScope() { var strLocal:String = “local”; } localScope(); trace(strLocal); // 出错,因为未在全局定义 strLocal 如果用于局部变量的变量名已经被声明为全局变量,那么,当局部变量在作用域内时,局部定义会隐藏(或遮蔽)全局定义。全局变量在该函数外部仍然存在。例如,下面的代码创建一个名为 str1 的全局字符串变量,然后在 scopeTest() 函数内部创建一个同名的局部变量。该函数中的 trace 语句输出该变量的局部值,而函数外部的 trace 语句则输出该变量的全局值。 var str1:String = “Global”; function scopeTest () { var str1:String = “Local”; trace(str1); // 本地 } scopeTest(); trace(str1); // 全局 与 C++ 和 Java 中的变量不同的是,ActionScript 变量没有块级作用域。代码块是指左大括号 ({) 与右大括号 (}) 之间的任意一组语句。在某些编程语言(如 C++ 和 Java)中,在代码块内部声明的变量在代码块外部不可用。对于作用域的这一限制称为块级作用域,ActionScript 中不存在这样的限制,如果您在某个代码块中声明一个变量,那么,该变量不仅在该代码块中可用,而且还在该代码块所属函数的其它任何部分都可用。例如,下面的函数包含在不同的块作用域中定义的变量。所有的变量均在整个函数中可用。 function blockTest (testArray:Array) { var numElements:int = testArray.length; if (numElements > 0) { var elemStr:String = “Element #”; for (var i:int = 0; i < numElements; i++) { var valueStr:String = i + “: " + testArray[i]; trace(elemStr + valueStr); } trace(elemStr, valueStr, i); // 仍定义了所有变量 } trace(elemStr, valueStr, i); // 如果 numElements > 0,则会定义所有变量 } blockTest([“Earth”, “Moon”, “Sun”]); 有趣的是,如果缺乏块级作用域,那么,只要在函数结束之前对变量进行声明,就可以在声明变量之前读写它。这是由于存在一种名为"提升"的方法,该方法表示编译器会将所有的变量声明移到函数的顶部 。例如,下面的代码会进行编译,即使 num 变量的初始 trace() 函数发生在声明 num 变量之前也是如此。 trace(num); // NaN var num:Number = 10; trace(num); // 10 但是,编译器将不会提升任何赋值语句。这就说明了为什么 num 的初始 trace() 会生成 NaN(而非某个数字),NaN 是 Number 数据类型变量的默认值。这意味着您甚至可以在声明变量之前为变量赋值,如下面的示例所示: num = 5; trace(num); // 5 var num:Number = 10; trace(num); // 10 ...

July 27, 2009 · notsobad

php模块的调试

python里面有这样的用法 #a.py if __name__ == "__main__": print "test" //只有直接python a.py 才会打印test 意思就是当前脚本独立运行时,才会运行print “test”,这在编写模块,并被其他程序调用时,可以用来调试。 php中没有对应的,今天想起来可以这样做: ...

June 18, 2009 · notsobad

php中的会话阻塞

php中exec, system调用其它脚本,脚本中又将一些脚本放入后台,可能会话会被挂起,也就是其它所有的请求都会被阻塞,点任何链接都没反应。 似乎与这个问题有关: What happens is that the child process which is called by the system() ,exec() or shell_exec() command holds the file lock on the parent process, thus locking the session file. Thus, the session file being locked session_start(); function cannot access the file. This is due to to open file descriptors locking the session file.Your entire session will be locked, so none of the pages of the website can be opened ( which are under session control ) unless you change the browser or delete cookies. ...

June 1, 2009 · notsobad

Javascript 来判断网络通断

一项应用可能会导致 web server 重启, 我需要检测这个重启过程,重启完毕能够给用户以通知 思路: js的生存期是在客户端,即使服务器已经重启,js仍可运行,所以用js是可以实现的 因为server上存在着favicon.ico文件,可以以检测是否能取得这个文件,来判断网络的通断。 ...

May 20, 2009 · notsobad

Form中action的参数限制

今天遇到的一个问题及其解决。 这样的一个表单: <form method=post action="/post.php?_in_form=123">... 在server端: <? //取不到$_GET['_in_form']! ?> 查了一些资料 参考: Methods GET and POST in HTML forms - what’s the difference? 关于GET和POST,数据的不同处理 If the method is "get" - -, the user agent takes the value of action, appends a ? to it, then appends the form data set, encoded using the application/x-www-form-urlencoded content type. The user agent then traverses the link to this URI. In this scenario, form data are restricted to ASCII codes. * If the method is "post" --, the user agent conducts an HTTP post transaction using the value of the action attribute and a message created according to the content type specified by the enctype attribute. 结论: get形式的from中,action中的get参数是不会传递的,应该把需要的附加参数作为form隐藏域处理 ...

May 18, 2009 · notsobad