Heim > Backend-Entwicklung > PHP-Tutorial > 关于PHP正则匹配取出数据的问题

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

WBOY
Freigeben: 2016-06-23 13:47:42
Original
935 Leute haben es durchsucht

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

<?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);?>
Nach dem Login kopieren

我想要的是取出下面这一段数据放到数组里,不知道该怎么写了,第一次接触正则感觉看不懂,谢谢各位大神们!
[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}
Nach dem Login kopieren


回复讨论(解决方案)

你是要这样的

print_r(array_map(null, explode('{td}', $exam[19]), explode('{td}', $exam[20])));
Nach dem Login kopieren
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] =>         ))
Nach dem Login kopieren

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

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

版主,可以问个小问题吗?[日期] => 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);
Nach dem Login kopieren

两种方法都可以

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

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage