过期域名预定抢注

 找回密碼
 免费注册

求大神。。。

[複製鏈接]
發表於 2014-10-21 21:56:41 | 顯示全部樓層 |閱讀模式
懸賞20點點已解決
本帖最後由 xx19941215 於 2014-10-21 22:02 編輯
" q3 Y' b0 u: Y. V/ L! w$ q: u0 H, \- k8 f2 T
代碼[mw_shl_code=php,true]<?php; r7 H$ \2 S9 o0 u: A) Y# O  |5 ?
function get_td_array($table) {
6 V( @5 |. i# q6 H: I7 N7 L! _        $table = preg_replace("'<table[^>]*?>'si","",$table);
* K. l; p3 ^3 V- q- l        $table = preg_replace("'<tr[^>]*?>'si","",$table);
0 `% Z  t% p0 K( c9 k! {/ `, ]        $table = preg_replace("'<td[^>]*?>'si","",$table);
7 F- m( P$ ]; B$ V6 i0 e5 z        $table = str_replace("</tr>","{tr}",$table);4 l! b3 |* v( ~6 j7 P# W. H7 Z
        $table = str_replace("</td>","{td}",$table);; \, P: m5 I9 C# c
        //去掉 HTML 標記
# U6 ^9 o( B$ R% \- I. c2 u        $table = preg_replace("'<[/!]*?[^<>]*?>'si","",$table);8 q& K/ Q7 c2 \+ R0 m
        //去掉空白字符- `5 L; T9 {; o: l9 \+ a
        $table = preg_replace("'([rn])+'","",$table);: x/ J2 W! [, ]$ t& _
        $table = preg_replace('/ /',"",$table);) v- X) G, d2 ~" V; m, l3 v
        $table = str_replace(" ","",$table);& s' I' ^2 m* r. q+ m/ K
        $table = str_replace(" ","",$table);
. c; O3 ~4 S- q5 r9 _9 ]        $table = explode('{tr}', $table);
  v/ ^; n4 z8 i  {        array_pop($table);
) w4 T1 x" d* e( S. j        foreach ($table as $key=>$tr) {
4 [( D4 A' j5 U                $td = explode('{td}', $tr);% s; q# f, u  D' {' R- @, A% f3 W
                array_pop($td);3 q+ }8 K' M+ ^+ W, h
                $td_array[] = $td;
- `) l! H' J, J# }$ v        }
7 Z& M* p6 M2 ~7 e4 r7 ?7 f        return $td_array;% |& W% a3 B; b: ~7 n$ {1 T
}
% K8 [* K+ c( ]1 W  //下載HTML網頁
$ Y3 P8 M6 v' G/ v0 q1 p  $s=file_get_contents('http://chengji.lideping.com:7000/exam/query/query.jsp?logname=20133011235');5 B# o) E1 B: C: E8 Y$ O
  $s=mb_convert_encoding("$s", "UTF-8", "GBK");  //編碼轉換
# b0 i% V% [( Y& R: |0 R  //獲取最後一個table內容9 ^  M2 `5 v) s5 c. e
  $s=substr($s,strrpos($s,'<table'));
! f" d1 O6 |2 N3 ?2 F# [: }  $s=substr($s,0,strpos($s,'</table>')+8);" N/ \# t; ]) N( k2 E
  //刪除超鏈接
- E. ]9 |+ F; Z. u7 F/ i. z  $s=preg_replace('|<a href.*?</a>|','',$s);; U6 a2 W# U( C8 \1 \5 h
$s=preg_replace('|<td align=\'center\'></td>|','',$s);//刪除多餘空格% }4 P( F( ~3 \3 }" ^

) E3 L7 {, T4 v+ C  |1 z9 K  echo $s;' l1 p  J) U* Z  K/ T* m9 x
  preg_match_all('/<table [^>]*>([\s\S]*?)<\/table>/',$s,$table);//用正則表達式將課表的表格取出
: _5 V) L, \. ]# r7 \# V  $arr = get_td_array($table[0][0]);//執行函數
% @, k  l* K/ \' x  print_r($arr);
$ a4 w7 t# P8 I0 `. f1 T, [?>
1 d3 w" b0 m& T  Y1 v, x[/mw_shl_code] 函數是將表格轉換為數組的函數,網上找的。。問題是: 2014-10-21_220010.jpg
* v: A6 v" @/ l

! s) w& V: [: A  J0 \% T6 J1 v+ s& Y

最佳答案

查看完整內容

樓主結賬! 人呢

點評

不好意思,这里大神多,就来这里问了,小弟php,正则,基本啥都不会,着这些代码还费了2个小时  發表於 2014-10-21 22:03
回復

使用道具 舉報

發表於 2014-10-21 21:56:42 | 顯示全部樓層
樓主結賬!                      人呢, |3 J/ F. e  n/ h5 Q
回復

使用道具 舉報

 樓主| 發表於 2014-10-21 22:14:25 | 顯示全部樓層
[mw_shl_code=php,true]<?php9 `- ~0 d/ M* V" \
header('Content-Type:text/html;charset:Utf-8');
5 b) d3 L2 m6 ?8 yfunction get_td_array($table) {/ Q1 @" y# R7 q  m- @, r% c
        $table = preg_replace("'<table[^>]*?>'si","",$table);
! v& [1 |# }+ @- y        $table = preg_replace("'<tr[^>]*?>'si","",$table);, z( A4 w1 P; R* F  W
        $table = preg_replace("'<td[^>]*?>'si","",$table);% _) h2 g0 _$ H1 J! p  B: K" b
        $table = str_replace("</tr>","{tr}",$table);! Q% J" J( h' u$ \. u
        $table = str_replace("</td>","{td}",$table);
0 z/ j1 D: @; h( R$ N* l0 ?        //去掉 HTML 標記6 I  [, S* H6 _
        $table = preg_replace("'<[/!]*?[^<>]*?>'si","",$table);1 a& _/ o3 E7 f. U6 }
        //去掉空白字符3 H8 Y/ V4 ?9 B) ^( \
        $table = preg_replace("'([rn])+'","",$table);% p% y" ^5 c) m/ U) u. D; ~
        $table = preg_replace('/ /',"",$table);
. g- U7 |7 F: l5 f: O1 F, Y        $table = str_replace(" ","",$table);
/ |( _' _! _3 z2 r; c( Y; u, n        $table = str_replace(" ","",$table);4 w; I- F2 ]9 V4 N+ p
        $table = explode('{tr}', $table);3 p9 r3 H. {$ J9 X- w6 j* _
        array_pop($table);( g3 F0 p" A8 [3 Q* k% Y  p+ O1 X
        foreach ($table as $key=>$tr) {
- B/ M  i1 N8 r, ]0 k: t( z                $td = explode('{td}', $tr);
2 w) \+ U/ g( Y7 W$ Q) ?                array_pop($td);
7 g- K# u3 [: J1 n$ }- l                $td_array[] = $td;  s3 v" ]7 W, K7 T" ]# W
        }; t# O. E$ ^5 N$ M
        return $td_array;7 v" i2 N- {  l7 ^
} . w: u2 |7 L" G
  //下載HTML網頁5 n% y- K5 [) z7 D
  $s=file_get_contents('http://222.88.107.92/exam/query/query_detail.jsp?examid=2014102014&paperid=100094');
3 k9 w5 Z2 q  Z. z# o  $s=mb_convert_encoding("$s", "UTF-8", "GBK");  //編碼轉換
2 e% I! q7 n6 \* k, h' [  //獲取最後一個table內容
+ |# V. }3 g- B$ D5 ?: d+ _  v  $s=substr($s,strrpos($s,'<table'));: ?. F' S4 U6 C+ s2 k; a
  $s=substr($s,0,strpos($s,'</table>')+8);
, v. G# V. p8 j# j  //刪除超鏈接
8 y/ @/ r1 q: Y5 m( r3 m  $s=preg_replace('|<a href.*?</a>|','',$s);
  G& g) O* {& ]4 o2 w$ M5 e  $s=preg_replace('|<td align="center" width="120">圖片</td>|','',$s);
  j; S; }$ f4 n2 \% ~  $s=preg_replace('|<td align=\'center\'></td>|','',$s);
2 f( T5 [" `  `$ r  $s=preg_replace('|<td align="center" width="120">評閱老師</td>|','',$s);  f. b8 {3 u3 d4 {
  $s=preg_replace('|<td align=\'center\'>110(.*?)<br></td>|','',$s);
) c* c$ A+ v0 t- V5 s! G: s+ m! N  echo $s;) g  ]0 D/ r9 @! A0 ^, h6 l9 g
  preg_match_all('/<table [^>]*>([\s\S]*?)<\/table>/',$s,$table);//用正則表達式將課表的表格取出
9 \0 o' p( I: N, w, a; i$ K9 i) r  t  $arr = get_td_array($table[0][0]);//執行函數4 x% k# V1 l5 |$ E' [) @3 h! `
  print_r($arr);8 t+ }3 a' S1 g5 c
?>
3 |0 b% R7 l) o[/mw_shl_code] 2014-10-21_221318.jpg % w  i( E4 M/ N8 \7 M: |5 J" a1 s9 x: U
回復

使用道具 舉報

 樓主| 發表於 2014-10-21 22:15:00 | 顯示全部樓層
一樣的代碼,上面的這個就輸出了完全的數組
0 b7 J; D2 `6 q; y5 D
回復

使用道具 舉報

發表於 2014-10-22 13:52:01 | 顯示全部樓層
[mw_shl_code=php,true]<!DOCTYPE html>8 ^8 A$ T7 F* I
<html lang="zh-cn">
4 y. D- h# E( @5 M! R# H<head>
: a3 N$ j4 B; i9 F9 O<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /># j, c' [- C/ P9 {$ l3 \
<title>測試</title>3 l3 f1 F2 h. w2 H
</head>
. ^( R4 s# h: W, M& C<body>
+ m+ I' v+ E- @$ F1 Q. T<?php
* X, {$ y' X0 i) q% h' E8 Tfunction get_td_array($table) {
# P( ~8 U# B7 N7 H' \# z  F        //去掉table標籤上的屬性
6 ^8 K- c1 J% [$ n" V8 r        $table = preg_replace("'<table[^>]*?>'si","",$table);. [, D8 {) q: ^+ K/ a
        //去掉TR上的屬性
' U: I  X2 A! h- R# v        $table = preg_replace("'<tr[^>]*?>'si","",$table);5 O& W& w0 \0 i" ^+ t% H3 c
        //去掉td上的屬性; d4 f/ @$ c( |& Z7 n
        $table = preg_replace("'<td[^>]*?>'si","",$table);
( c, ~0 h' Z5 D        //標籤替換! _4 T! R! r1 {) `, a. y) c3 ~' k7 a
        $table = str_replace("</tr>","{tr}",$table);
2 B  t* W, Q; O. H3 Y& r7 C        $table = str_replace("</td>","{td}",$table);( e3 ~+ u: p& @3 M* g
+ u6 I/ S# c% {& k' P
        //去掉 HTML 標記: @0 J4 p# k! p0 r
        $table = preg_replace("'<[/!]*?[^<>]*?>'si","",$table);3 e% m3 F9 I8 d# ?- _9 y
        //去掉空白字符
4 C- l; R4 o2 I+ P( E7 J9 E2 Z        $table = preg_replace("'([rn])+'","",$table);
( L% K& {6 N* E0 h4 Z        $table = preg_replace('/ /',"",$table);
* s, N% F  ]& s2 B( l" b- P        $table = str_replace(" ","",$table);
7 o7 t  J6 J9 }6 G        $table = str_replace(" ","",$table);" @6 L( `  F! V
        $table = explode('{tr}', $table);/ L  d: T; c: O" V8 T; w1 [

" g( P! D" T" h- k1 D        //這裡打印出來是長度為2的數組。
' U0 F+ {/ M6 X9 h, O0 p! A' w        print_r($table);
/ n4 F, K8 {4 b3 f" Y        //這句代碼有問題,這個會把數組的第二個元素刪掉,所以得不到想要的結果( {1 l' g/ u- b9 E' |  Q
        //array_pop($table);" g) r5 _: m5 c4 E# r( U6 H5 |
       
7 c# n. ^: N1 E. }: W9 v        $td_array = array();, T. N  x5 l6 c% u

& c/ f+ L6 y, N- G        foreach ($table as $key=>$tr) {0 v" i8 V: h, ?9 [3 q& ~9 o+ D
                $td = explode('{td}', $tr);
% W% r) U! g( Z                array_pop($td);
5 h1 o0 @8 t' k$ V2 z# g                $td_array[] = $td;8 D9 a9 R2 p5 l; f% \/ k: v8 ]
        }( t/ W9 v% ]* ^# A
        return $td_array;
  c# I8 K& ^& G2 u  v}
2 U5 G. `: c( \//下載HTML網頁3 Z% @2 c$ K# B4 l* Z6 Z
$s=file_get_contents('http://chengji.lideping.com:7000/exam/query/query.jsp?logname=20133011235');( M6 X5 e9 e4 q. B
$s=mb_convert_encoding("$s", "UTF-8", "GBK");  //編碼轉換& D6 B( G: }: a0 ^
//獲取最後一個table內容
8 A% K! e/ l+ z& ]) r$s=substr($s,strrpos($s,'<table'));
3 j1 N$ k, p( I6 E5 V: K$s=substr($s,0,strpos($s,'</table>')+8);8 A8 t$ _* z0 P! d% l
//刪除超鏈接
+ ^8 d: z; c, ~% f7 b$s=preg_replace('|<a href.*?</a>|','',$s);
2 G6 _- C2 c: z6 @7 g2 W" i$s=preg_replace('|<td align=\'center\'></td>|','',$s);//刪除多餘空格
) [2 _& X- d$ }, J' O6 c5 e+ b$ h9 U& o" z
echo $s;7 f" x4 V* u& P. }8 u/ {; Q
preg_match_all('/<table [^>]*>([\s\S]*?)<\/table>/',$s,$table);//用正則表達式將課表的表格取出
5 o/ B. ^( O* L8 B# ~; A* W7 \6 I. i9 j1 W7 h
$arr = get_td_array($table[0][0]);//執行函數
( Y$ g; s- t, _3 @' E; T2 xprint_r($arr);
  }0 r. v! R8 }3 |?>
4 S1 U/ `0 w7 ~; T% ]</body>% {1 y- a. z* r! M0 z7 i1 A6 [
</html>+ J3 J. {/ Y7 \" n. R, O
[/mw_shl_code]: r& p5 S. j, j9 I! g6 y

  U1 I" i" ]# Z# k已調整完全正確輸出,給樓主你註釋了哪句代碼的問題
+ B% M+ t! m$ L

評分

參與人數 1點點 +13 收起 理由
月光飞燕 + 13 認眞參與

查看全部評分

回復

使用道具 舉報

發表於 2014-10-22 13:53:15 | 顯示全部樓層
記得給懸賞!  20分啊,口水流出來了: Q& X: a# ~) n- ~$ i- W/ q

點評

好的,终于来人了啊,我测试看看  發表於 2014-10-22 14:00
回復

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 免费注册

本版積分規則

4um點基跨境網編創業社區

GMT+8, 2024-11-24 01:07

By DZ X3.5

小黑屋

快速回復 返回頂部 返回列表