(.*?)<\/a> <\/h4>.*?(.*?)<\/p>/';
}
- $rs=preg_match_all($pattern, $content, $matches);
- if($rs){
+ $rs = preg_match_all($pattern, $content, $matches);
+ if ($rs) {
mylog('crawl finished.start parsing');
- $data=array();
+ $data = array();
foreach ($matches[1] as $key => $val) {
- if(false !== strpos($matches[1][$key], 'job') || false !== strpos($matches[1][$key], 'amazon')){ // get rid of job and book recommendations
+ if (false !== strpos($matches[1][$key], 'job') || false !== strpos($matches[1][$key], 'amazon')) {
+ // get rid of job and book recommendations
continue;
}
- $item=[
- 'title'=>strip_tags($matches[2][$key]),
- 'desc'=>$matches[3][$key],
- 'href'=>$val,
- 'number'=>$number,
- 'hash'=>md5($val)
+ $item = [
+ 'title' => strip_tags($matches[2][$key]),
+ 'desc' => $matches[3][$key],
+ 'href' => $val,
+ 'number' => $number,
+ 'hash' => md5($val),
];
//加入数据库
- $id=$this->add_cache($item);
- $item['id']=$id;
+ $id = $this->add_cache($item);
+ $item['id'] = $id;
mylog("item {$id} added to cache");
// 加入数组
- $data[]=$item;
+ $data[] = $item;
}
return $data;
}
@@ -304,48 +319,48 @@ function crawl($number){
/**
* add item to cache
*/
- function add_cache($item){
- $sql=$this->arr2sql('cache',$item);
+ function add_cache($item) {
+ $sql = $this->arr2sql('cache', $item);
$this->pdo->exec($sql);
- $id=$this->pdo->lastInsertId();
+ $id = $this->pdo->lastInsertId();
return $id;
}
/**
* translate array to sql
*/
- function arr2sql($dbname,$arr,$updateid=null){
-
- if($updateid){
+ function arr2sql($dbname, $arr, $updateid = null) {
+
+ if ($updateid) {
// return "update {$dbname} set "
unset($arr['ctime']);
unset($arr['addtime']);
- $sql="update {$dbname} set ";
+ $sql = "update {$dbname} set ";
foreach ($arr as $key => $val) {
- $sql.="`{$key}`='{$val}',";
+ $sql .= "`{$key}`='{$val}',";
}
- $sql.='ctime='.time();
- $sql.=" where id={$updateid}";
+ $sql .= 'ctime=' . time();
+ $sql .= " where id={$updateid}";
return $sql;
- }else{
- $fields=[];
- $values=[];
+ } else {
+ $fields = [];
+ $values = [];
foreach ($arr as $key => $v) {
- $fields[]="`{$key}`";
- $values[]="'{$v}'";
+ $fields[] = "`{$key}`";
+ $values[] = "'{$v}'";
}
- return "insert into {$dbname} (".implode(',', $fields).") values(".implode(',', $values).")";
+ return "insert into {$dbname} (" . implode(',', $fields) . ") values(" . implode(',', $values) . ")";
}
}
/**
* get categories
*/
- function get_cate(){
- $arr=[];
- $rs=$this->pdo->query("select distinct category from issue order by category")->fetchAll(PDO::FETCH_ASSOC);
+ function get_cate() {
+ $arr = [];
+ $rs = $this->pdo->query("select distinct category from issue order by category")->fetchAll(PDO::FETCH_ASSOC);
foreach ($rs as $val) {
- $arr[]=$val['category'];
+ $arr[] = $val['category'];
}
return $arr;
}
@@ -353,16 +368,19 @@ function get_cate(){
/**
* add an item to db or update it if exists
*/
- function add($data){
- $sql = $this->arr2sql('issue',$data);
- $rs=$this->pdo->exec($sql);
- if($rs){
+ function add($data) {
+ $sql = $this->arr2sql('issue', $data);
+ $rs = $this->pdo->exec($sql);
+ if ($rs) {
return $this->pdo->lastInsertId();
}
- $rs=$this->pdo->query("select id from issue where hash='{$data['hash']}'")->fetch(PDO::FETCH_ASSOC);
- if(isset($rs['id'])){
- $update=$this->pdo->exec($this->arr2sql('issue',$data,$rs['id']));
- if($update) return $rs['id'];
+ $rs = $this->pdo->query("select id from issue where hash='{$data['hash']}'")->fetch(PDO::FETCH_ASSOC);
+ if (isset($rs['id'])) {
+ $update = $this->pdo->exec($this->arr2sql('issue', $data, $rs['id']));
+ if ($update) {
+ return $rs['id'];
+ }
+
}
return false;
}
@@ -370,12 +388,12 @@ function add($data){
/**
* fetch all recorded data
*/
- function get_all(){
+ function get_all() {
return $this->pdo->query('select * from issue order by category,addtime')->fetchAll(PDO::FETCH_ASSOC);
}
- function current_number(){
- $rs=$this->pdo->query('select max(number) as max from issue')->fetch(PDO::FETCH_ASSOC);
+ function current_number() {
+ $rs = $this->pdo->query('select max(number) as max from issue')->fetch(PDO::FETCH_ASSOC);
return $rs['max'];
}
}
diff --git a/talks.md b/talks.md
index 09c5ac8..57de18c 100644
--- a/talks.md
+++ b/talks.md
@@ -354,3 +354,42 @@
[写了个程序玩,抓了 400 亿条秀恩爱和吐槽](http://weekly.manong.io/bounce?url=http%3A%2F%2Fdaily.zhihu.com%2Fstory%2F7832686&aid=5220&nid=105)
[程序员年后跳槽的法则](http://weekly.manong.io/bounce?url=http%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMjM5NDkxMTgyNw%3D%3D%26mid%3D404752547%26idx%3D1%26sn%3D5a7e80b8a288fae44b933902e2099fe0&aid=5221&nid=105)
[[译] 对话算法大师 Pedro Domingos](http://weekly.manong.io/bounce?url=http%3A%2F%2Fwww.almosthuman.cn%2F2016%2F02%2F11%2Fmbk76%2F&aid=5242&nid=105)
+[如何成为一名优秀的全栈工程师](http://weekly.manong.io/bounce?url=http%3A%2F%2Fwww.jianshu.com%2Fp%2Ff0d134ed7fd0&aid=5275&nid=106)
+[怎样练习一万小时](http://weekly.manong.io/bounce?url=http%3A%2F%2Fwww.geekonomics10000.com%2F519&aid=5276&nid=106)
+[创业者的技能树(中篇)](http://weekly.manong.io/bounce?url=http%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzI0MjA1Mjg2Ng%3D%3D%26mid%3D401662479%26idx%3D1%26sn%3Df454f74bf44af1d0042ab381ffe64f31&aid=5277&nid=106)
+[流量红利枯竭,消费互联网创业进入 Hard 模式](http://weekly.manong.io/bounce?url=http%3A%2F%2F36kr.com%2Fp%2F5043751.html&aid=5352&nid=107)
+[Offer 那么多,怎样拒绝才好?](http://weekly.manong.io/bounce?url=http%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzAxMzUzNzYyNA%3D%3D%26mid%3D402337363%26idx%3D1%26sn%3D9803768d62a10b032be525c2c9d60ceb&aid=5351&nid=107)
+[编程之外,8 种拓展方式](http://weekly.manong.io/bounce?url=http%3A%2F%2Fljinkai.github.io%2F2016%2F02%2F27%2Fout-of-programming%2F&aid=5350&nid=107)
+[程序员怎样才能写出一篇好的博客或者技术文章](http://weekly.manong.io/bounce?url=https%3A%2F%2Fwww.phodal.com%2Fblog%2Fprogrammer-how-to-write-a-good-article%2F&aid=5370&nid=107)
+[为什么整个互联网行业都缺前端工程师?](http://weekly.manong.io/bounce?url=http%3A%2F%2Fzhuanlan.zhihu.com%2FFrontendMagazine%2F20598089&aid=5396&nid=107)
+[程序员怎么获得高工资](http://weekly.manong.io/bounce?url=http%3A%2F%2Fwww.sunhaojie.com%2F2016%2F01%2F06%2F%25E7%25A8%258B%25E5%25BA%258F%25E5%2591%2598%25E6%2580%258E%25E4%25B9%2588%25E8%258E%25B7%25E5%25BE%2597%25E9%25AB%2598%25E5%25B7%25A5%25E8%25B5%2584%2F&aid=5478&nid=108)
+[[译] 经过无数经验教训后我给独立程序员的建议](http://weekly.manong.io/bounce?url=http%3A%2F%2Fwww.jianshu.com%2Fp%2F152e84a045a9&aid=5479&nid=108)
+[[译] 你每天 90% 的注意力,都浪费在了鸡毛蒜皮上](http://weekly.manong.io/bounce?url=http%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzA4ODM1MTMzMQ%3D%3D%26mid%3D403612871%26idx%3D1%26sn%3D3ec8f01008b4ffec486e357eed8c5bb7&aid=5480&nid=108)
+[最低成本的创业公司技术栈方案 ](http://weekly.manong.io/bounce?url=http%3A%2F%2Fweibo.com%2Fttarticle%2Fp%2Fshow%3Fid%3D2309403950016476635122&aid=5481&nid=108)
+[程序员如何优雅地挣零花钱?](http://weekly.manong.io/bounce?url=http%3A%2F%2Fweibo.com%2Fttarticle%2Fp%2Fshow%3Fid%3D2309403952864992042896&aid=5556&nid=109)
+[AlphaGo 与人工智能](http://weekly.manong.io/bounce?url=http%3A%2F%2Fwww.yinwang.org%2Fblog-cn%2F2016%2F03%2F09%2Falpha-go&aid=5508&nid=109)
+[我的学习、归纳方法](http://weekly.manong.io/bounce?url=https%3A%2F%2Fgithub.com%2Fjudasn%2Fhexo-blog%2Fblob%2Fmaster%2F2016%2F02%2FMy-Learning-Way.md&aid=5527&nid=109)
+[如何从菜鸟成长为(伪)架构师](http://weekly.manong.io/bounce?url=http%3A%2F%2Fweibo.com%2Fttarticle%2Fp%2Fshow%3Fid%3D2309403952717566480672&aid=5554&nid=109)
+[我的自学编程故事](http://weekly.manong.io/bounce?url=http%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzA4NTQwNDcyMA%3D%3D%26mid%3D402784322%26idx%3D1%26sn%3Db28ae10f7f30db7918398a85923b65b5&aid=5583&nid=110)
+[Google 的眼光](http://weekly.manong.io/bounce?url=http%3A%2F%2Fwww.yinwang.org%2Fblog-cn%2F2016%2F03%2F17%2Fgoogle-vision&aid=5584&nid=110)
+[[译] 这 141 家创业公司分析了他们为什么失败](http://weekly.manong.io/bounce?url=http%3A%2F%2F36kr.com%2Fp%2F5044583.html&aid=5586&nid=110)
+[聊聊针对异地团队的需求协作和原型、设计的评审](http://weekly.manong.io/bounce?url=http%3A%2F%2Fwangchao.de%2F%25E8%2581%258A%25E8%2581%258A%25E9%2592%2588%25E5%25AF%25B9%25E5%25BC%2582%25E5%259C%25B0%25E5%259B%25A2%25E9%2598%259F%25E7%259A%2584%25E9%259C%2580%25E6%25B1%2582%25E5%258D%258F%25E4%25BD%259C%25E5%2592%258C%25E5%258E%259F%25E5%259E%258B%25E3%2580%2581%25E8%25AE%25BE%25E8%25AE%25A1%25E7%259A%2584%25E8%25AF%2584%25E5%25AE%25A1%2F&aid=5614&nid=110)
+[[译] 12 个超棒的 Web 开发工作站](http://weekly.manong.io/bounce?url=http%3A%2F%2Fcodingpy.com%2Farticle%2F12-amazing-web-development-workstations%2F&aid=5585&nid=110)
+[聊聊创业团队的项目管理如何面向开发人员优化](http://weekly.manong.io/bounce?url=http%3A%2F%2Fwangchao.de%2F%25E8%2581%258A%25E8%2581%258A%25E5%2588%259B%25E4%25B8%259A%25E5%259B%25A2%25E9%2598%259F%25E7%259A%2584%25E9%25A1%25B9%25E7%259B%25AE%25E7%25AE%25A1%25E7%2590%2586%25E5%25A6%2582%25E4%25BD%2595%25E9%259D%25A2%25E5%2590%2591%25E5%25BC%2580%25E5%258F%2591%25E4%25BA%25BA%25E5%2591%2598%25E4%25BC%2598%25E5%258C%2596%2F&aid=5688&nid=111)
+[我的编程生涯里启发我的 15 本书](http://weekly.manong.io/bounce?url=https%3A%2F%2Fwww.phodal.com%2Fblog%2Fmost-important-15-books-of-phodal-programmer-life%2F&aid=5687&nid=111)
+[写在离开百度后的第一天](http://weekly.manong.io/bounce?url=http%3A%2F%2Fweibo.com%2Fp%2F1001603956574254141761+&aid=5686&nid=111)
+[重构的七宗罪](http://weekly.manong.io/bounce?url=http%3A%2F%2Finsights.thoughtworkers.org%2Frefactoring%2F&aid=5694&nid=111)
+[我的编程之路](http://weekly.manong.io/bounce?url=https%3A%2F%2Fgithub.com%2Ficepy%2F_posts%2Fissues%2F32&aid=5760&nid=112)
+[Google 的绩效管理](http://weekly.manong.io/bounce?url=http%3A%2F%2Fwww.ruanyifeng.com%2Fblog%2F2016%2F03%2Fperformance-management.html&aid=5761&nid=112)
+[让 BAT 的 Offer 不再难拿](http://weekly.manong.io/bounce?url=http%3A%2F%2Fwww.jianshu.com%2Fp%2Fee15c1cf9c16&aid=5759&nid=112)
+[GitHub 中国区前 100 名到底是什么样的人?](http://weekly.manong.io/bounce?url=http%3A%2F%2Fdiycode.cc%2Ftopics%2F23&aid=5811&nid=113)
+[我的日常一天](http://weekly.manong.io/bounce?url=http%3A%2F%2Fgulu-dev.com%2Fpost%2F2016-04-09-a-working-day&aid=5809&nid=113)
+[程序员成长攻略](http://weekly.manong.io/bounce?url=http%3A%2F%2Fwww.21cto.com%2Farticle%2F46&aid=5810&nid=113)
+[[译] NPM 与 left-pad 事件:我们是不是早已忘记该如何好好地编程?](http://weekly.manong.io/bounce?url=http%3A%2F%2Fqianduan.guru%2F2016%2F04%2F04%2Fnpm-left-pad-have-we-forgotten-how-to-program%2F&aid=5839&nid=113)
+[腾讯广州后台开发一面面经](http://weekly.manong.io/bounce?url=http%3A%2F%2Fwww.nowcoder.com%2Fdiscuss%2F4631%3Fsource%3Drss&aid=5842&nid=113)
+[程序员也需要了解期望值管理](http://weekly.manong.io/bounce?url=http%3A%2F%2Fzhuanlan.zhihu.com%2Fp%2F20046507&aid=5848&nid=113)
+[阿里巴巴、美团等各大互联网公司的 Java 类校招对本科生有什么要求?](http://weekly.manong.io/bounce?url=https%3A%2F%2Fwww.zhihu.com%2Fquestion%2F26350691%2Fanswer%2F42692522&aid=5884&nid=114)
+[从学校到公司](http://weekly.manong.io/bounce?url=https%3A%2F%2Fwww.noterhub.com%2F2016%2F04%2F15%2F%25E4%25BB%258E%25E5%25AD%25A6%25E6%25A0%25A1%25E5%2588%25B0%25E5%2585%25AC%25E5%258F%25B8%2F&aid=5898&nid=114)
+[程序员的黄金时代](http://weekly.manong.io/bounce?url=http%3A%2F%2Fblog.coderzh.com%2F2016%2F04%2F17%2Fgold-time-of-programmer%2F&aid=5899&nid=114)
+[《程序员健康指南》读书笔记](http://weekly.manong.io/bounce?url=http%3A%2F%2Fwww.jianshu.com%2Fp%2Fb30bb43bdfdf&aid=5900&nid=114)
+[我是怎么一个月将应用弄上 App Store 首页推荐的?](http://weekly.manong.io/bounce?url=http%3A%2F%2Fzhuanlan.zhihu.com%2Fp%2F20742241&aid=5923&nid=114)