[mw_shl_code=php,true]<!DOCTYPE html>
, s9 x# K; f/ ]8 P<html lang="zh-cn">
2 Q* ~( m- s# X5 W<head>
9 _( D- Q+ |4 t<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
9 E y% U! ]3 ~4 s$ N2 N* x<title>測試</title>( m# j9 F7 ?# W: ]9 e
</head>: V7 h; `8 o. u% |. q& q
<body>; O; I+ p4 I$ F. _ f0 P
<?php
/ @& X) P( ?. L) K6 f! u7 k Yfunction get_td_array($table) {
+ O- R' X1 O2 {- i Y //去掉table標籤上的屬性
9 U6 `+ Y) R. Y8 H) h# E+ O $table = preg_replace("'<table[^>]*?>'si","",$table);; V( O, L$ `2 }# X, u1 S9 @ T
//去掉TR上的屬性
* B3 o5 m" S- Z, j9 [! ~+ e/ U0 i $table = preg_replace("'<tr[^>]*?>'si","",$table);
& R' S' S2 O$ e* |( j //去掉td上的屬性0 b% q* m# u X8 B
$table = preg_replace("'<td[^>]*?>'si","",$table);
7 {* C( B& T# Z- h //標籤替換% C! {8 g' T- B- X
$table = str_replace("</tr>","{tr}",$table);
{- B z; P8 w. g7 s0 t $table = str_replace("</td>","{td}",$table);
9 f7 ?( f+ N$ i" {0 u6 d1 W
& ^5 M' k+ ~6 K; T8 m //去掉 HTML 標記. q: c/ m# U; b( G
$table = preg_replace("'<[/!]*?[^<>]*?>'si","",$table);) q8 P5 u$ w! b$ F9 N$ g
//去掉空白字符! d- q8 l/ r# E% U4 c5 t/ E
$table = preg_replace("'([rn])+'","",$table);- B( A# V8 s# Y T3 f9 u
$table = preg_replace('/ /',"",$table);
+ S" ~9 L6 E& W. i $table = str_replace(" ","",$table);
( z8 ], A3 ` q1 Z5 Y4 r $table = str_replace(" ","",$table);, A# P- R9 {+ z
$table = explode('{tr}', $table);0 r$ d- X9 r5 a- H4 o
# T6 B9 X) I g8 ^
//這裡打印出來是長度為2的數組。/ G+ `' d1 e8 C+ V! ?3 G# R: ^
print_r($table);" ]0 J. a4 p5 x+ E; Y& s8 @; e
//這句代碼有問題,這個會把數組的第二個元素刪掉,所以得不到想要的結果" V; T. h6 _# S2 A' n2 V
//array_pop($table);
- I: H u. | a' d3 J
4 A3 e! k! F6 ^6 s+ h2 m4 A/ O $td_array = array();9 N( ?0 E7 |) b4 Z6 }3 H
) Q# V( w1 o- r7 z/ q foreach ($table as $key=>$tr) {
: x$ q0 W2 V2 o3 C7 l0 G0 e $td = explode('{td}', $tr);
3 L" K" j: f9 b* @7 d% K- X0 x array_pop($td);" |8 g' H$ N/ Z, a0 ?
$td_array[] = $td;
5 {0 O0 k. P, _" o }9 ?: h5 N. k5 ?) `
return $td_array;
. x: i) J, Z. E! j6 A9 S- O} o; n2 T, S! P7 O1 k
//下載HTML網頁
+ Y& @4 E# E, B. Z5 j' \( V8 Q b$s=file_get_contents('http://chengji.lideping.com:7000/exam/query/query.jsp?logname=20133011235');# u! y/ H% ?+ K8 X% f ]6 P
$s=mb_convert_encoding("$s", "UTF-8", "GBK"); //編碼轉換
/ F3 C8 y! \6 D6 O9 k//獲取最後一個table內容8 a! d! n* v) i
$s=substr($s,strrpos($s,'<table'));7 E" E0 V1 v B( x* N7 U' n: E
$s=substr($s,0,strpos($s,'</table>')+8);
$ U8 ?8 C# z+ I6 N//刪除超鏈接
3 _+ ]5 ?$ A7 @0 ~5 a1 J9 J/ M$s=preg_replace('|<a href.*?</a>|','',$s);
1 g( p1 _- v5 y! Y) R F$s=preg_replace('|<td align=\'center\'></td>|','',$s);//刪除多餘空格
" y* N8 S+ L0 [* T( |: p& ?0 Y/ Z5 h% O. [( y
echo $s;
8 y2 q% I# X$ B6 zpreg_match_all('/<table [^>]*>([\s\S]*?)<\/table>/',$s,$table);//用正則表達式將課表的表格取出# G$ W& K: Z- o1 u- j
& q9 ~: f- U" ~, r" R$arr = get_td_array($table[0][0]);//執行函數# t* m# `$ P2 s& m. W" S
print_r($arr);
2 s) M {6 ~% x) C?>
) g7 c, ]' ?9 y9 a3 O; C</body>
8 p& w/ V; `, f, v7 H3 Y5 l</html>/ [ D4 i* `5 a! `
[/mw_shl_code]9 y9 \6 S" V1 N3 w/ ]# S: V
; p( N: J8 {# \0 S
已調整完全正確輸出,給樓主你註釋了哪句代碼的問題8 N2 O: B7 C. u6 N
|