用Sinatra编写博客应用
Sinatra是Blake Mizerany在2007年9月开发的Ruby语言的Web框架。它最突出的特点就是轻量、快速。更难能可贵的是,Sinatra的源代码只有一千多行。
Sinatra是Blake Mizerany在2007年9月开发的Ruby语言的Web框架。它最突出的特点就是轻量、快速。更难能可贵的是,Sinatra的源代码只有一千多行。
virtualbox 可以在cmd 中启动一个指定的虚拟机:
vagrant package --base 要导出的虚拟机id也就是名称 --out xxx.box(这里是导出的文件名)
前一阵申请了华为云的主机,一直没有这么用,最近想用起来试试
使用顺序和并发2种方式 正则表达式 并发就是快 package main import "io/ioutil" import "net/http" import "fmt" import "regexp" import "time" func testget(url string) string{ resp, err := http.Get(url) if err != nil { fmt.Println(err) } body, err := ioutil.ReadAll(resp.Body) if err != nil { fmt.Println(err) } return get_title(string(body)) } func testget2(url string, chann chan string ){ resp, err := http.Get(url) if err != nil { fmt.Println(err) } body, err := ioutil.ReadAll(resp.Body) if err != nil { fmt.Println(err) } chann <- get_title(string(body)) } func get_title(body string) string{ re := regexp.MustCompile("<title>(.*)</title>") a := re.FindStringSubmatch(body) if len(a) != 0{ return a[1] } return "" } func current_unixtimestamp() int32{ return int32(time.Now().Unix()) } func main(){ urllist := [] string {"http://www.baidu.com","http://www.17173.com","http://www.hao123.com","http://www.126.com","http://www.oschina.net","http://www.simapple.com"} single_start := current_unixtimestamp() for _,v := range urllist { fmt.Println(v) baidubody := testget(v) fmt.Println(baidubody) } single_end := current_unixtimestamp() fmt.Printf("use %d seconds\n***********************************\n", single_end-single_start) chann := make(chan string, 300) single_start = current_unixtimestamp() for _,v := range urllist { fmt.Println(v) go testget2(v, chann) go fmt.Println(<-chann) } single_end = current_unixtimestamp() fmt.Printf("use %d seconds", single_end-single_start) }
TIOBE 2014年2月编程语言排行
最佳Linux发行版: Ubuntu
PHP发送POST请求的三种方式 class Request{ public static function post($url, $post_data = '', $timeout = 5){ $ch = curl_init(); curl_setopt ($ch, CURLOPT_URL, $url); curl_setopt ($ch, CURLOPT_POST, 1); if($post_data != ''){ curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data); } curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout); curl_setopt($ch, CURLOPT_HEADER, false); $file_contents = curl_exec($ch); curl_close($ch); return $file_contents; } public static function post2($url, $data){ $postdata = http_build_query( $data ); $opts = array('http' => array( 'method' => 'POST', 'header' => 'Content-type: application/x-www-form-urlencoded', 'content' => $postdata ) ); $context = stream_context_create($opts); $result = file_get_contents($url, false, $context); return $result; } public static function post3($host,$path,$query,$others=''){ $post="POST $path HTTP/1.1\r\nHost: $host\r\n"; $post.="Content-type: application/x-www-form-"; $post.="urlencoded\r\n${others}"; $post.="User-Agent: Mozilla 4.0\r\nContent-length: "; $post.=strlen($query)."\r\nConnection: close\r\n\r\n$query"; $h=fsockopen($host,80); fwrite($h,$post); for($a=0,$r='';!$a;){ $b=fread($h,8192); $r.=$b; $a=(($b=='')?1:0); } fclose($h); return $r; } }
WordPress 是一款非常流行的CMS,包含有用户管理和访问控制.很多流行的网站都是建立在以WordPress为后台的基础之上 而及时的更新 优秀的社区 丰富的文档 以及很好的论坛支持,让WP继续向前快速发展.