Home > Backend Development > PHP Tutorial > 关于PHP正则匹配取出数据的问题

关于PHP正则匹配取出数据的问题

WBOY
Release: 2016-06-23 13:47:42
Original
935 people have browsed it

下面是经过一部分处理的源代码

<?php$exam = curl_init("http://exam.hhit.edu.cn/fgquery.do?status=lowquery&tsid=2012120348");curl_setopt($exam, CURLOPT_RETURNTRANSFER, true); // 获取数据返回curl_setopt($exam, CURLOPT_BINARYTRANSFER, true); // 在启用 CURLOPT_RETURNTRANSFER 时候将获取数据返回$exam=curl_exec($exam);        $exam = preg_replace("'<table[^>]*?>'si","",$exam);          $exam = preg_replace("'<tr[^>]*?>'si","",$exam);           $exam = preg_replace("'<td[^>]*?>'si","",$exam);           $exam = str_replace("</tr>","{tr}",$exam);           $exam = str_replace("</td>","{td}",$exam);           //去掉 HTML 标记            $exam = preg_replace("'<[/!]*?[^<>]*?>'si","",$exam);          //去掉空白字符             $exam = preg_replace("'([rn])[s]+'","",$exam);        $exam = preg_replace('/ /',"",$exam);           $exam = str_replace(" ","",$exam);           $exam = str_replace(" ","",$exam);         $exam = explode('{tr}', $exam);        array_pop($exam);               print_r($exam);?>
Copy after login

我想要的是取出下面这一段数据放到数组里,不知道该怎么写了,第一次接触正则感觉看不懂,谢谢各位大神们!
[19] => 编号{td}课程{td}日期{td}时间{td}班级{td}考场{td}任课教师{td}[20] => 1{td}流体力学{td}2014-11-0600:00:00.0{td}14:00-16:00{td}土木122{td}Ⅲ-209{td}巩妮娜{td}
Copy after login


回复讨论(解决方案)

你是要这样的

print_r(array_map(null, explode('{td}', $exam[19]), explode('{td}', $exam[20])));
Copy after login
Array(    [0] => Array        (            [0] => 编号            [1] => 1        )    [1] => Array        (            [0] => 课程            [1] => 流体力学        )    [2] => Array        (            [0] => 日期            [1] => 2014-11-0600:00:00.0        )    [3] => Array        (            [0] => 时间            [1] => 14:00-16:00        )    [4] => Array        (            [0] => 班级            [1] => 土木122        )    [5] => Array        (            [0] => 考场            [1] => Ⅲ-209        )    [6] => Array        (            [0] => 任课教师            [1] => 巩妮娜        )    [7] => Array        (            [0] =>             [1] =>         ))
Copy after login

还是这样的
print_r(array_combine(explode('{td}', $exam[19]), explode('{td}', $exam[20])));
Copy after login
Array(    [编号] => 1    [课程] => 流体力学    [日期] => 2014-11-0600:00:00.0    [时间] => 14:00-16:00    [班级] => 土木122    [考场] => Ⅲ-209    [任课教师] => 巩妮娜    [] => )
Copy after login

我想应该是第二种 作为一个数组变量插入到模板中 谢谢大神

版主,可以问个小问题吗?[日期] => 2014-11-0600:00:00.0这个数据在页面上是没有00:00:00.0这些的,能去掉吗?

$s = '2014-11-0600:00:00.0';echo date('Y-m-d', strtotime($s));echo substr($s, 0, 10);
Copy after login

两种方法都可以

谢谢版主,如此敬业,感激万分,此贴终结!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template