过期域名预定抢注

 找回密碼
 免费注册

求大神。。。

[複製鏈接]
發表於 2014-10-21 21:56:41 | 顯示全部樓層 |閱讀模式
懸賞20點點已解決
本帖最後由 xx19941215 於 2014-10-21 22:02 編輯 , [& E# u, e$ g* {9 d7 I- K
5 K. x4 S/ Q# L# ?0 [
代碼[mw_shl_code=php,true]<?php
- e! h# S5 p( Ffunction get_td_array($table) {: p2 s6 S+ }, T8 v$ |) k
        $table = preg_replace("'<table[^>]*?>'si","",$table);
/ V2 Q- J! a' O4 C( h( M' h+ z  n3 b        $table = preg_replace("'<tr[^>]*?>'si","",$table);, I4 ]- a1 K% G: |1 n( O
        $table = preg_replace("'<td[^>]*?>'si","",$table);: v1 K( b  {9 z: O3 X( E
        $table = str_replace("</tr>","{tr}",$table);' E, K6 ]) ], S3 z* k) ^% u+ V
        $table = str_replace("</td>","{td}",$table);6 J: I/ `! O9 l& ~: b$ ^  X7 C5 A
        //去掉 HTML 標記
: j" d. _/ Q' U8 b        $table = preg_replace("'<[/!]*?[^<>]*?>'si","",$table);1 s# J) r9 p: \/ v6 |# y: r' S3 N
        //去掉空白字符
  i+ \  S' ^3 ]  X. ^- O! D        $table = preg_replace("'([rn])+'","",$table);; L5 d4 ^2 `) g+ O
        $table = preg_replace('/ /',"",$table);8 o7 R  Y( S2 S5 a+ T* a' y
        $table = str_replace(" ","",$table);" F% u6 e/ J8 U( I" c, e: W
        $table = str_replace(" ","",$table);
" P/ A1 A9 I* M# M/ q: F        $table = explode('{tr}', $table);1 K8 y9 }1 w8 F) g8 O4 d- [
        array_pop($table);- f8 O* x# w0 m5 L8 l
        foreach ($table as $key=>$tr) {
- p  a- _. L! @5 \- S                $td = explode('{td}', $tr);" U) |) v' i1 t- J% b
                array_pop($td);# ~7 x3 A$ @& ~8 J' |  Q
                $td_array[] = $td;
1 s) _! Z0 Z; g2 p, J5 j        }
# B% M9 H7 G& i! E        return $td_array;
8 E4 |# y7 q4 P9 v6 r} 3 t- y# ?' t0 C0 Z
  //下載HTML網頁2 V$ d" Q2 p7 M, T" D" l+ l
  $s=file_get_contents('http://chengji.lideping.com:7000/exam/query/query.jsp?logname=20133011235');
" H/ [+ p1 q, I0 F: q  $s=mb_convert_encoding("$s", "UTF-8", "GBK");  //編碼轉換
" t# _' Z" j5 t8 q; l  //獲取最後一個table內容) I- c4 w4 y3 [+ Q7 h1 K: \5 j6 k
  $s=substr($s,strrpos($s,'<table'));
  Y! _- t  h) D0 i% b  $s=substr($s,0,strpos($s,'</table>')+8);
. F+ P$ E+ S3 ]% j' v  //刪除超鏈接
& c5 ~! N- ~8 e$ L0 L0 t  $s=preg_replace('|<a href.*?</a>|','',$s);- W. C/ a" G3 P! S% Z0 _; _9 D
$s=preg_replace('|<td align=\'center\'></td>|','',$s);//刪除多餘空格
) ?, H0 c2 e5 S2 o
* G8 h9 u. c& T  echo $s;
7 Z/ i$ g. Y% t& Q& c5 Z/ t  preg_match_all('/<table [^>]*>([\s\S]*?)<\/table>/',$s,$table);//用正則表達式將課表的表格取出1 a) K# _& ~$ t0 H4 {5 s
  $arr = get_td_array($table[0][0]);//執行函數: {4 L( ]' M" R) t
  print_r($arr);
6 \6 ?1 R) }6 u?>' a) j' r9 Y2 m& ~( w- [1 A* M( S% d
[/mw_shl_code] 函數是將表格轉換為數組的函數,網上找的。。問題是: 2014-10-21_220010.jpg

1 v7 s6 ^: c3 _1 E" G( f# W5 s% O/ {' u& B# m- E7 C  s9 q: J- Q

最佳答案

查看完整內容

樓主結賬! 人呢

點評

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

使用道具 舉報

發表於 2014-10-21 21:56:42 | 顯示全部樓層
樓主結賬!                      人呢
7 p! L; C2 F: v( U
回復

使用道具 舉報

 樓主| 發表於 2014-10-21 22:14:25 | 顯示全部樓層
[mw_shl_code=php,true]<?php
  T/ r" T% B# m$ e3 ]header('Content-Type:text/html;charset:Utf-8');* m& d% q  `: |- f9 d8 M6 p
function get_td_array($table) {2 c4 {1 B8 z) t5 o
        $table = preg_replace("'<table[^>]*?>'si","",$table);
0 v5 T$ x* @; B        $table = preg_replace("'<tr[^>]*?>'si","",$table);/ I" H+ d6 z8 F0 E- w; Y
        $table = preg_replace("'<td[^>]*?>'si","",$table);
" y. m+ k( f4 h% l+ g/ B        $table = str_replace("</tr>","{tr}",$table);+ y- w! z( e/ I3 z- t
        $table = str_replace("</td>","{td}",$table);
* E: V, ?6 F! X  \- |$ Q        //去掉 HTML 標記# Y3 |) }5 z- Z; |- |+ X
        $table = preg_replace("'<[/!]*?[^<>]*?>'si","",$table);
" \; v$ g5 d+ W5 v5 l* @- q        //去掉空白字符1 V7 P0 }* w+ {. ^' C! K6 I
        $table = preg_replace("'([rn])+'","",$table);5 o4 k! ]6 B% W8 b$ K, O& _: o
        $table = preg_replace('/ /',"",$table);  k) C8 A( L7 t9 G
        $table = str_replace(" ","",$table);
) L2 D! R: z) s1 s        $table = str_replace(" ","",$table);+ `0 z" @; |+ h' u% I
        $table = explode('{tr}', $table);- |6 j, j% M  A4 a
        array_pop($table);, ?: k) y' ?4 d9 s7 M) ]  K
        foreach ($table as $key=>$tr) {4 J: J6 _2 E4 ?
                $td = explode('{td}', $tr);
4 K. ?6 j9 _/ {6 n1 U* a' X2 z                array_pop($td);
+ r7 S7 q% R& l                $td_array[] = $td;  J6 S  U, }( h2 ~! V
        }/ \7 A5 I" D9 c# ?5 J$ V5 l
        return $td_array;+ v5 b6 o9 L, V9 {
} . F' ]' N% j# H) o
  //下載HTML網頁
+ Z( t0 q  P; u) y+ C  \  $s=file_get_contents('http://222.88.107.92/exam/query/query_detail.jsp?examid=2014102014&paperid=100094');5 u) }4 l3 `4 }" l( ~
  $s=mb_convert_encoding("$s", "UTF-8", "GBK");  //編碼轉換
7 Z$ P! }! x0 |& w9 s1 h  //獲取最後一個table內容
3 y7 ^8 A& ]9 x1 M3 U+ N( j  $s=substr($s,strrpos($s,'<table'));/ B3 X; L/ G3 D  z% M
  $s=substr($s,0,strpos($s,'</table>')+8);
( z% t: w3 x" L6 V+ o  //刪除超鏈接+ R* n& Y8 G/ K
  $s=preg_replace('|<a href.*?</a>|','',$s);
$ A$ D" ?1 y; \+ ^: G- b4 N  $s=preg_replace('|<td align="center" width="120">圖片</td>|','',$s);8 l4 K4 V- l. {7 w$ A4 e1 x
  $s=preg_replace('|<td align=\'center\'></td>|','',$s);; h: [- g3 A( X* [7 V
  $s=preg_replace('|<td align="center" width="120">評閱老師</td>|','',$s);- j/ H6 F5 s! w, V9 T9 [
  $s=preg_replace('|<td align=\'center\'>110(.*?)<br></td>|','',$s);
4 D' y' N6 G4 L4 `+ ?  echo $s;
' {/ H' I# x  ]2 y  preg_match_all('/<table [^>]*>([\s\S]*?)<\/table>/',$s,$table);//用正則表達式將課表的表格取出
( }0 H6 M. {( K! Y  $arr = get_td_array($table[0][0]);//執行函數
  t+ w' x# y$ {6 n) I3 Y  print_r($arr);
: B% p" V) D+ F1 ]' I?>. s7 Z8 U3 J: L. l
[/mw_shl_code] 2014-10-21_221318.jpg
8 ?' U8 _4 F  L6 E
回復

使用道具 舉報

 樓主| 發表於 2014-10-21 22:15:00 | 顯示全部樓層
一樣的代碼,上面的這個就輸出了完全的數組. }7 V/ |3 G8 v4 v9 E9 @
回復

使用道具 舉報

發表於 2014-10-22 13:52:01 | 顯示全部樓層
[mw_shl_code=php,true]<!DOCTYPE html>
  c8 g4 p8 s5 z* j2 _! A( J<html lang="zh-cn"># U, |) e6 ^  H3 B
<head>7 f" _; A: i" }9 z7 `4 M
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />5 R( j8 v3 g. `3 b- H
<title>測試</title>0 l: X/ m  R0 N8 b& l
</head>- ^1 u9 Q4 P% |6 p" N7 t
<body>
- O& [4 n6 D" y<?php4 U. \4 T- D9 I) l4 p+ W- t4 h
function get_td_array($table) {, ~. f, z7 D8 {$ R0 }, M- x
        //去掉table標籤上的屬性
/ v( ]5 v+ L' l. i        $table = preg_replace("'<table[^>]*?>'si","",$table);
: q6 F/ x6 a8 w6 D6 i8 E        //去掉TR上的屬性3 R+ V/ c$ }  `2 l
        $table = preg_replace("'<tr[^>]*?>'si","",$table);
0 l; X; h: n/ n        //去掉td上的屬性: _5 K5 e& g7 M
        $table = preg_replace("'<td[^>]*?>'si","",$table);
4 a- y: m9 {% n$ q        //標籤替換( i2 {- u" N* T3 I
        $table = str_replace("</tr>","{tr}",$table);0 B+ `1 |# b5 J, b# r+ e
        $table = str_replace("</td>","{td}",$table);, @: ~8 b) G+ q

: _0 n* U' B5 W2 E2 x        //去掉 HTML 標記7 n+ v* v; t  h+ ~' f; k7 ]) p
        $table = preg_replace("'<[/!]*?[^<>]*?>'si","",$table);
( L2 B3 G8 v. K  X% L        //去掉空白字符9 J& d0 B  N; Q1 W( X
        $table = preg_replace("'([rn])+'","",$table);. C9 _) i1 W, f* y
        $table = preg_replace('/ /',"",$table);
3 n( Y9 \5 Q) @% C9 [7 S        $table = str_replace(" ","",$table);
5 }0 l' R8 }  I9 M! q( X        $table = str_replace(" ","",$table);+ v3 F) g, ^" E% T! p1 L; H& j7 I
        $table = explode('{tr}', $table);
, M3 j  _$ t' G1 U- J% |) ?" U8 n, A8 J: D- k
        //這裡打印出來是長度為2的數組。( ^! a, `% [6 D7 W. s! o
        print_r($table);
3 |& L3 d! K: c8 V5 e        //這句代碼有問題,這個會把數組的第二個元素刪掉,所以得不到想要的結果
" F2 `$ Y7 ^  D+ o' L9 g        //array_pop($table);
3 L' ^" G4 b. ?% L       
/ D" m- H: n: m7 s5 o. C        $td_array = array();
0 u! E& r- Z4 m8 K6 |; \
- W' [4 H, @+ b. u7 k; v3 R$ e  W, M        foreach ($table as $key=>$tr) {
$ `$ u5 T! K& a4 _% S1 K1 ?& ~! w                $td = explode('{td}', $tr);
5 e) y  y7 B0 l                array_pop($td);* F2 v9 k& ]9 k8 x* ~
                $td_array[] = $td;
7 P: g' P4 ?6 \5 d1 ^" x        }; |9 c8 X; f4 F* d! B! F: A; j
        return $td_array;" K4 k3 O" M  C. R- h. z
}
7 V+ M$ c2 ~0 e7 d" ~0 @//下載HTML網頁8 e* X6 x/ ?% b: s0 F; c
$s=file_get_contents('http://chengji.lideping.com:7000/exam/query/query.jsp?logname=20133011235');
" \: l% x; I- K! O$ W2 N$s=mb_convert_encoding("$s", "UTF-8", "GBK");  //編碼轉換( w9 n5 T6 Q8 C$ F
//獲取最後一個table內容9 \! Z7 E) {' L' m
$s=substr($s,strrpos($s,'<table'));
2 i2 F- p5 h3 V* ~$s=substr($s,0,strpos($s,'</table>')+8);
; @7 G. `; q2 a; R3 B//刪除超鏈接0 j7 C% V- u: r3 ^
$s=preg_replace('|<a href.*?</a>|','',$s);: r7 n7 S+ K, `0 Y: l7 J
$s=preg_replace('|<td align=\'center\'></td>|','',$s);//刪除多餘空格
- ]0 Z7 R+ U8 c( _6 p! [- H  p$ p5 Z: _( }) q( `
echo $s;! n  M' ?3 b8 ?( U- e
preg_match_all('/<table [^>]*>([\s\S]*?)<\/table>/',$s,$table);//用正則表達式將課表的表格取出
$ f/ g$ d' O# s  v* {3 X9 L8 |: y. P7 L& T. C" H2 P
$arr = get_td_array($table[0][0]);//執行函數
5 C  Y8 _4 p0 Q( N  c) K. Hprint_r($arr);
: X; e* l8 t% j& w" S?>
) w8 `, G0 m6 W% |</body>* ^, W5 X3 A( v$ ^- j
</html>
0 X+ e( [' c  O/ I* j& |$ t  z# p[/mw_shl_code]5 s% z$ ?& k! b; u

7 i7 G# @! c9 e! T0 y3 o+ u已調整完全正確輸出,給樓主你註釋了哪句代碼的問題( }( {' \0 o, x. q0 g

評分

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

查看全部評分

回復

使用道具 舉報

發表於 2014-10-22 13:53:15 | 顯示全部樓層
記得給懸賞!  20分啊,口水流出來了, E8 h  D; l! O+ |2 b

點評

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

使用道具 舉報

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

本版積分規則

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

GMT+8, 2024-11-24 03:25

By DZ X3.5

小黑屋

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