Heim >Backend-Entwicklung >PHP-Tutorial >手把手教你做关键词匹配项目(搜索引擎)---- 第六天,教你做----_PHP教程
第六天
小帅帅周五休息后,精神估计太旺盛了,周末两天就狂欢去了,酒喝高了,把一件重要的事儿给忘记了。
周一重新整装 刺骨上战场.
一来公司,小帅帅终于记得他要做的事情,就迫不及待的整理会议报告(工作总结)。
1.上周工作任务:
1) 页面提交关键词到关键词词库
2) 文件导入到关键词词库
3) 自动抓取关键此到关键词词库
2.能力的提升
1) 学会了如何读csv文件
2) 学会了curl
3) 学会了Html Dom parse
3.下周工作任务:
1) 了解下关键词词库的应用
刚写到这儿,会议的警钟就来了,小帅帅揣着这会议报告纸条匆匆忙忙赶到会议室。
经过3小时的口舌混战,会议终于结束了。
小帅帅被迫扣上了以下任务,谁叫小帅帅没把计划安排好呢。
1. 学习下淘宝的API的用法,根据淘宝API获取宝贝的信息。
2. 跟据宝贝的属性匹配适合的关键词。
3. 继续跟进后续的扩充关键词词库任务,并且整理归类下。
会议后,于老大私下在抽烟的时候找到了小帅帅,于老大向小帅帅了解情况,说到:你上周的任务做的很棒,你如果能够对这些任务归纳下、总结下,用一份大家都看得懂的图来描述下就非常完美了。
小帅帅听到很激动:图...呃....流程图?
于老大耐心的说到:除了流程图之外,还有很多图,比如:数据流图、UML图... ( 说到这些,于老大就停不下来了,小帅帅蒙了 )
烟灭了,小帅帅再也坚持不了了,于是打断了于老大的夸夸奇谈,说: 呃...于老大, 这份总结你建议用什么图表示比较好呢?
于老大不得不停下夸夸奇谈,特意咳嗽一下,来打破尴尬,拍着小帅帅的肩膀,深情的说到:小帅帅,你先去了解下数据流图、UML图,其实用什么图无所谓,只要能够把你的思想传达出来就行了...
小帅帅瞪时口塞,像塞了个鸡蛋塞在嘴里。心里又默默的鄙视了于老大。
数据流图:简称DFD,它从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法 [来自百度词条]
UML图:UML(Unified Modeling Language的缩写)统一建模语言,是用来对软件密集系统进行可视化建模的一种语言。UML为面向对象开发系统的产品进行说明、可视化、和编制文档的一种标准语言。统一建模语言 (UML)是非专利的第三代建模和规约语言。 UML是在开发阶段,说明,可视化,构建和书写一个面向对象软件密集系统的制品的开放方法。UML展现了一系列最佳工程实践,这些最佳实践在对大规模,复杂系统进行建模方面,特别是在软件架构层次已经被验证有效。UML被OMG采纳作为业界的标准。UML最适于数据建模,业务建模,对象建模,组件建模。 [来自百度词条]
当小帅帅去整理这份图的时候,于老大其实已经在他的本子上已经把这些图已经画下来了。其实他是想让小帅帅去接触下软件设计的知识。
小帅帅的想法就不一致,一听到有新的技术知识,他就迫不及待去接触,去学习。
就这样小帅帅终于把数据流图,和UML图的概念看了一遍又一遍,估计能够背出来了,但还是无法画出这样的图。
当小帅帅垂头丧气去找于老大的时候,于老大把整理后的图和代码给他看了之后,觉得受到打击了,原来这就是差距...
于老大的原稿:
<?<span>php </span><span>class</span><span> Keyword { </span><span>public</span> <span>$word</span><span>; </span><span>public</span> <span>static</span> <span>$conn</span> = <span>null</span><span>; </span><span>public</span> <span>function</span><span> getDbConn(){ </span><span>if</span>(self::<span>$conn</span> == <span>null</span><span>){ self</span>::<span>$conn</span> = <span>mysql_connect</span>(DATABASE_HOST,DATABASE_USER,<span>DATABASE__PASSWORD); </span><span>mysql_query</span>("SET NAMES '".DATABASE_CHARSET."'",self::<span>$conn</span><span>); </span><span>mysql_select_db</span>("dict",self::<span>$conn</span><span>); </span><span>return</span> self::<span>$conn</span><span>; } </span><span>return</span> self::<span>$conn</span><span>; } </span><span>public</span> <span>function</span><span> save(){ </span><span>$sql</span> = "insert into keywords(word) values ('<span>$this</span>->word')"<span>; </span><span>return</span> <span>mysql_query</span>(<span>$sql</span>,<span>$this</span>-><span>getDbConn()); } } </span><span>class</span><span> Source { </span><span>public</span> <span>$keywords</span><span>; </span><span>public</span> <span>function</span><span> run() { </span><span>foreach</span> (<span>$this</span>->keywords <span>as</span> <span>$word</span><span>) { </span><span>#</span><span> code...</span> <span>$keyword</span> = <span>new</span><span> Keyword(); </span><span>$keyword</span>->word = <span>$word</span><span>; </span><span>$keyword</span>-><span>save(); } } } </span><span>class</span> InputSource <span>extends</span><span> Source { </span><span>public</span> <span>function</span><span> __construct(){ </span><span>$this</span>->keywords = <span>$_REQUEST</span>["keywords"<span>]; } } </span><span>class</span> FileSource <span>extends</span><span> Source { </span><span>public</span> <span>function</span> __construct(<span>$filename</span><span>){ </span><span>$file</span> = <span>fopen</span>(<span>$filename</span>,'r'<span>); </span><span>while</span> (<span>$data</span> = <span>fgetcsv</span>(<span>$file</span><span>)) { </span><span>$this</span>->keywords[] = <span>$data</span><span>; } </span><span>fclose</span>(<span>$file</span><span>); } } </span><span>class</span> TaobaoHotsSource <span>extends</span><span> Source { </span><span>public</span> <span>function</span><span> __construct() { </span><span>#</span><span> code...</span> <span>$curl</span> = <span>new</span><span> ExtendedCurl(); </span><span>$content</span> = <span>$curl</span>->get("http://www.taobao.com"<span>); </span><span>if</span>(<span>$curl</span>-><span>hasError()){ </span><span>throw</span> <span>new</span> <span>Exception</span>(<span>$curl</span>->getError(), <span>$curl</span>-><span>getHttpCode()); } </span><span>$html</span> = str_get_html(<span>$content</span><span>); </span><span>foreach</span>(<span>$html</span>->find(".search-hots a[class!=more]") <span>as</span> <span>$ele</span><span>){ </span><span>$this</span>->keywords[] = <span>$ele</span>-><span>innertext; } } }</span>
小帅帅只好拿着那木剑去打怪升级,这个boss级别太高,小帅帅抗不起。
小帅帅的啊Q精神还是挺好的,他坚信总有一天,自己会成为Boss级别的,让其它刚出茅庐的来挑战他。
每个人一生中都拥有一副好牌,可惜的是许多人都把它浪费了,手上握有一副富人的牌,却把自己打成了一个穷人。
许多人心灵上都沾满了消极的灰尘,失望的污泥和贫穷落后的思想,甚至还怨恨的种子,这样你就永远不会快乐和富有的。穷人:致富和做生意到底有没有什么秘诀?
富人:每件事情都 有它不同的内在规律,所谓的秘诀实际上就只是那么一点点东西。
九十九度加一度,水就开了。开水与温水的区别是这么一度。有些事情之所以会有天壤之别,往往就是因为这微不足道的一度。我在报上看到这么一件事。
两个下岗女工,各在路边开了一个早点铺,都卖包子和油茶。一个生意逐渐兴旺,一个30天后收了摊,据说原因是一个鸡蛋的问题。
生意逐渐兴旺的那家,每当顾客到来时,总是问在油茶里打一个鸡蛋还是两个鸡蛋;垮掉的那一家问的是要不要。两种不同的问法总能使第一家卖出较多的鸡蛋。鸡蛋卖出得多,盈利就大,就付得起各项费用,生意也就做了下去。鸡蛋卖得少的,盈利少,去掉费用不赚钱,摊子只好收起。成功与失败之间仅一个鸡蛋的区别。
名满天下的可口可乐中,百分之九十九的是水、糖、碳酸和*,世界上一切饮料的构成也大概如此。然而在可口可乐中有1%的东西是其他绝对有的,据说就是这个神秘的1%,使它每年有4亿多美的纯利润,而其他品牌的饮料,每年有8000万美的收入就算满意了。
在这世界上成与败之间的距离就这么一点点,所谓秘诀也就这一点点,但就这一点点东西是最宝贵的,许多人要用多次的失败才换回它,然后走向成功。穷人:如果知道了某种生意的秘诀,然后从事这个项目就容易成功吗?
富人:各种生意都有自己的小秘密,谁也不会把这小秘密告诉别人,因为有的是不能摆到桌面上的,另外也怕被别人学走了,他们都把它列入了祖传秘方。那个诊所的朋友,他告诉我,一个诊所要赚钱,原则上:一要便宜,二要有效。但你如果死照这原则做,是不了钱的。既然便宜你收费就不能贵,有效的话,病一次就看好了,这样赚的钱除了打点主管部门、房租、员工工资,以及七七八八的社会各种收费所剩无几了……不如剩早关门。你要从事什么行业,你就要先去跟从事这行业的人做朋友或先到他那里做雇员最好同,用心就能学到这个祖传秘方。这比自己损失了不少时间在实践中慢慢摸索要合算得多。
小老板做事,中老板做市,大老板做势!
我们许多人用体力赚钱,不少人用技术赚钱,很少人用知识赚钱,极少人是用智慧赚钱的。在财富时代,智慧的人太少太少,有智慧又能抓住商机的人更是凤毛麟角。只要我们开动脑筋,发挥智慧,就可以把握机会,成为财富的主人。
好,那红旗给我吧,