正则表达式练习:一次心血来潮的采集事件

昨天晚上心血来潮,由于寝室的厕所灯坏了,所以需要报修,我们学校有网络报修的服务,因此就通过网络报修了寝室的厕所灯,然后,突然想要看看这些报修的人里面有没有自己认识的人。随后我便花了一整晚的时间在写PHP的采集程序,做要是为了采集报修系统里面的简单的报修人信息,但是当晚没有能够完成,于是就睡觉去了。
正则表达式练习:一次心血来潮的采集事件

第二天一大早起床便兴匆匆的又开始了写这段采集的小程序,昨天网上已经将正则表达式写好了,虽然不是很完美的正则表达式,不过毕竟刚开始都是从笨拙到精练的,还是需要慢慢来的。一整个早上都卡在了数据库插入数据上,一直没能够成功。原本以为会是正则表达式部分花费时间多的,但是却没想到是数据库插入数据部分的代码卡住了。不过后来发现只是一个低级的错误,因为填写的数据库名称错误了而已。

以下是本次编写的采集代码,其实我应该写一个类的,那样可以增加代码重用,提高效率,一直采用这种面向过程的方式编程不是好习惯啊,等毕业答辩后开始认真的写几个常用的类,还要写一个真正纯自己编写的网站程序。哈哈,希望能够做到。






&lt;meta http-equiv=&quot;refresh&quot; content=&quot;10;url=http://localhost/index.php?id="&gt; <title>正则表达式练习-采集结果</title> &lt;?php mysql_connect(&quot;localhost&quot;,&quot;root&quot;,&quot;&quot;); mysql_select_db(&quot;hfut&quot;); $startid = $_GET[&#039;id&#039;] * 100 + 1; $endid = $_GET[&#039;id&#039;] * 100 + 101; for($i = $startid; $i &lt; $endid; $i++){ $getcontents = file_get_contents(&#039;网址?id=&#039;.$i); if(preg_match(&quot;/报修编号:([0-9]+)/&quot;,$getcontents,$baoxiubianhao)) { preg_match(&quot;/当前状态:(.*)&lt;/&quot;,$getcontents,$dangqianzhuangtai); preg_match(&quot;/故障位置:(.*)&nbsp;&nbsp;&nbsp;&nbsp;/&quot;,$getcontents,$guzhangweizhi); preg_match(&quot;/报修ip:([0-9.]*)&lt;/&quot;,$getcontents,$baoxiuip); preg_match(&quot;/报 修 人:(.{0,15})&lt;/&quot;,$getcontents,$baoxiuren); preg_match(&quot;/故障类型:(.*)&lt;/&quot;,$getcontents,$guzhangleixing); preg_match(&quot;/故障描述:(.*)&lt;/&quot;,$getcontents,$guzhangmiaoshu); preg_match(&quot;/报修时间:((.{0,15})(\n)?(.{0,5}))&lt;/&quot;,$getcontents,$baoxiushijian); preg_match(&quot;/预约日期:(.*)&lt;/&quot;,$getcontents,$yuyueshijian); $sql = &quot;insert into repair (baoxiubianhao,dangqianzhuangtai,guzhangweizhi,baoxiuip,baoxiuren,guzhangleixing,guzhangmiaoshu,baoxiushijian,yuyueshijian) values (&#039;$baoxiubianhao[1]&#039;,&#039;$dangqianzhuangtai[1]&#039;,&#039;$guzhangweizhi[1]&#039;,&#039;$baoxiuip[1]&#039;,&#039;$baoxiuren[1]&#039;,&#039;$guzhangleixing[1]&#039;,&#039;$guzhangmiaoshu[1]&#039;,&#039;$baoxiushijian[1]&#039;,&#039;$yuyueshijian[1]&#039;)&quot;; if(mysql_query($sql)){ echo &quot;成功!</br>"; }else{ echo "失败!</br>"; } }else{ echo "该ID没有数据!</br>"; } } ?&gt;

代码写好后,花了一整个下午采集数据,第一次采集的时候出现了算法错误,当i越大的时候采集的数量就会越小,最后变为0。不过后来发现了问题后就进行了修改,现在的算法是正确可行的了。通过这一次的练习,我对正则表达式的了解又更进一步了,每一次进步都是迈向成功的新里程碑。

发表评论