昨天晚上心血来潮,由于寝室的厕所灯坏了,所以需要报修,我们学校有网络报修的服务,因此就通过网络报修了寝室的厕所灯,然后,突然想要看看这些报修的人里面有没有自己认识的人。随后我便花了一整晚的时间在写PHP的采集程序,做要是为了采集报修系统里面的简单的报修人信息,但是当晚没有能够完成,于是就睡觉去了。
第二天一大早起床便兴匆匆的又开始了写这段采集的小程序,昨天网上已经将正则表达式写好了,虽然不是很完美的正则表达式,不过毕竟刚开始都是从笨拙到精练的,还是需要慢慢来的。一整个早上都卡在了数据库插入数据上,一直没能够成功。原本以为会是正则表达式部分花费时间多的,但是却没想到是数据库插入数据部分的代码卡住了。不过后来发现只是一个低级的错误,因为填写的数据库名称错误了而已。
以下是本次编写的采集代码,其实我应该写一个类的,那样可以增加代码重用,提高效率,一直采用这种面向过程的方式编程不是好习惯啊,等毕业答辩后开始认真的写几个常用的类,还要写一个真正纯自己编写的网站程序。哈哈,希望能够做到。
- <!DOCTYPE html>
- <html lang="zh-CN">
- <head>
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width initial-scale=1.0, user-scalable=yes">
- <meta http-equiv="refresh" content="10;url=http://localhost/index.php?id=<?php echo $_GET['id'] + 1; ?>">
- <title>正则表达式练习-采集结果</title>
- <body>
- <?php
- mysql_connect("localhost","root","");
- mysql_select_db("hfut");
- $startid = $_GET['id'] * 100 + 1;
- $endid = $_GET['id'] * 100 + 101;
- for($i = $startid; $i < $endid; $i++){
- $getcontents = file_get_contents('网址?id='.$i);
- if(preg_match("/报修编号:([0-9]+)/",$getcontents,$baoxiubianhao))
- {
- preg_match("/当前状态:(.*)</",$getcontents,$dangqianzhuangtai);
- preg_match("/故障位置:(.*) /",$getcontents,$guzhangweizhi);
- preg_match("/报修ip:([0-9.]*)</",$getcontents,$baoxiuip);
- preg_match("/报 修 人:(.{0,15})</",$getcontents,$baoxiuren);
- preg_match("/故障类型:(.*)</",$getcontents,$guzhangleixing);
- preg_match("/故障描述:(.*)</",$getcontents,$guzhangmiaoshu);
- preg_match("/报修时间:((.{0,15})(\n)?(.{0,5}))</",$getcontents,$baoxiushijian);
- preg_match("/预约日期:(.*)</",$getcontents,$yuyueshijian);
- $sql = "insert into repair (baoxiubianhao,dangqianzhuangtai,guzhangweizhi,baoxiuip,baoxiuren,guzhangleixing,guzhangmiaoshu,baoxiushijian,yuyueshijian) values ('$baoxiubianhao[1]','$dangqianzhuangtai[1]','$guzhangweizhi[1]','$baoxiuip[1]','$baoxiuren[1]','$guzhangleixing[1]','$guzhangmiaoshu[1]','$baoxiushijian[1]','$yuyueshijian[1]')";
- if(mysql_query($sql)){
- echo "成功!</ br>";
- }else{
- echo "失败!</ br>";
- }
- }else{
- echo "该ID没有数据!</ br>";
- }
- }
- ?>
- </body>
- </html>