日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > php >内容正文

php

如何用php获取网页表格,PHP获取网页上任意表格中内容的通用程序的制作

發(fā)布時(shí)間:2025/3/19 php 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何用php获取网页表格,PHP获取网页上任意表格中内容的通用程序的制作 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

在工作中,經(jīng)常需要對(duì)網(wǎng)頁上的表格內(nèi)容進(jìn)行處理,但是,由于表格內(nèi)容制作過程中的隨意性,跨行跨列經(jīng)常發(fā)生,所以我作了這幾個(gè)函數(shù),以獲取表格的內(nèi)容,程序中重要的地方已作了注解,所以在此不再重復(fù)說明,經(jīng)過測(cè)試,非常成功.所以拿出來供大家共享.

//作者: 王朋武

//日期: 2005,3,31

//目的: 獲取網(wǎng)頁上(任意跨行跨列的)表格中的內(nèi)容

function fun_proc_rowspan($l_str)

{

$l_a = explode("\n", $l_str);

for($i=count($l_a)-1; $i>=0; $i--) {

$l_str = trim($l_a[$i]);

if(empty($l_str)) continue;

$l_str = eregi_replace("

$l_b = explode("", $l_str);?//如有n個(gè),則分成(n+1)個(gè)組,最開始一項(xiàng)為空.

for($j=0; $j

如 +----+----+----+----+----+----+----+

+----+----+----+----+----+----+----+此一行保存7格, 前6格都有rowspan=2

+-----------------------------+----+此一行只保存2格

+----------------------------------+此一行只保存1格

*/

$l_str = trim($l_b[$j]);

if(eregi("rowspan", $l_str)) {

$rowspan = preg_replace("/^

$rowcont = preg_replace("/^

(.+)/", "\\1", $l_str);

$l_a = fun_add_row_td($l_a, $i, $j, $rowspan, $rowcont);

$l_str = implode("\n", $l_a);

return $l_str;

}

}//end of for j

}//end of for i

return $l_str;

}

function fun_add_row_td($l_a, $r, $l, $add_n, $add_cont)?//l_a是數(shù)組, r是插入的開始行,l是開始的列, add_n是跨多少行, add_cont是加的內(nèi)容

{

for($i=$r; $i

if($i == $r) {

$l_str = eregi_replace("

$l_b = explode("", $l_str);

$l_c = "";

for($j=1; $j

if($j == $l) $l_c .= eregi_replace("rowspan", "", $l_b[$j]);?//去掉rowspan

else $l_c .= $l_b[$j];

}

$l_a[$i] = $l_c;

continue;

}

$l_str = eregi_replace("

分隔符

$l_b = explode("", $l_str);?//以分組

$l_c = "";

for($j=1; $j

if($j == $l) {

$l_c .= "

".$add_cont."";

}

$l_c .= $l_b[$j];

}//end of for j

$l_a[$i] = $l_c;?//更新后的新內(nèi)容

}//end of for i

return $l_a;

}

function fun_proc_colspan($l_str)

{

$l_a = explode("\n", $l_str);

for($i=0; $i

$l_str = trim($l_a[$i]);

if(empty($l_str)) continue;

$l_str = eregi_replace("

$l_b = explode("", $l_str);?//如有n個(gè),則分成(n+1)個(gè)組,最開始一項(xiàng)為空.

for($j=1; $j

$l_str = trim($l_b[$j]);

if(eregi("

$colspan = preg_replace("/^

$colcont = preg_replace("/^

(.+)/", "\\1", $l_str);

$l_a = fun_add_col_td($l_a, $i, $j, $colspan, $colcont);

$l_str = implode("\n", $l_a);

return $l_str;

}

}//end of for j

}//end of for i

return $l_str;

}

function fun_add_col_td($l_a, $r, $l, $add_n, $add_cont)?//l_a是數(shù)組, r是插入的開始行,l是開始的列, add_n是跨多少列, add_cont是加的內(nèi)容

{

$l_str = eregi_replace("

分隔符

$l_b = explode("", $l_str);?//以分組

$l_c = "";

for($j=1; $j<=count($l_b); $j++) {?//略過開始的空項(xiàng),從1開始

if($j == $l) {

$l_c .= eregi_replace("colspan", "", $l_b[$j]);?//去掉colspan

continue;

}

if($j == $l+1) {

for($k=0; $k

$l_c .= "

".$add_cont."";

}

$l_c .= $l_b[$j];

}//end of for j

$l_a[$r] = $l_c;?//更新后的新內(nèi)容

return $l_a;

}

$l_str = file_get_contents("test.htm");?//獲取網(wǎng)頁內(nèi)容

$l_str = eregi_replace(".*

$l_str = eregi_replace("

.*", "", $l_str);

$l_str = eregi_replace("\r", "", $l_str);?//去掉\r

$l_str = eregi_replace("\n", "", $l_str);?//去掉\n

$l_str = eregi_replace("", "\n", $l_str);?//使表格的一行成為一行數(shù)據(jù)

$l_str = strip_tags($l_str, "

");?//只保留,html表記

while(eregi("

while(eregi("

/至此,表格處理已完成.

$l_str = eregi_replace("", "
", $l_str);?//給每一格之間加上標(biāo)記

$l_str = strip_tags($l_str, "
");

$l_a = explode("\n", $l_str);

for($i=0; $i

$l_str = trim($l_a[$i]);

if(empty($l_str)) continue;

$l_b = explode("
", $l_str);

foreach($l_b as $val) {

echo $val."?";?//表格每列內(nèi)容間加空格

}

echo "
";?//表格的一行顯示為一行

}

//附測(cè)試用例和測(cè)試結(jié)果:

/***********測(cè)試用表格*************************************************************

untitled document
1234567
a122a2a3
b1b2b3b433
c1c2c3c444
d1d2d3d4
e1e2e3e4e5
f1f2f3
g1g2
h1
i1i2i3i4i5
j1j2j3j4
k1k2
l1l2
m1m2m3

*********************************************************************************/

/**************操作結(jié)果的表格***********************************************

1234567
a122a2a3a3a3a3
b122b2b2b3b433
c122c2c3c44433
d122d2d3d44433
e122e2e3e4e533
f122f2f3f3f3f3
g122g2g2g2g2g2
h1h1h1h1h1h1h1
i1i2i2i2i3i4i5
j1j2j2j2j3j4j4
k1k1k1k1k1k1k2
l1l1l1l1l1l1l2
m1m1m1m1m1m2m3

******************************************************************/

測(cè)試用表:

1234567

a122a2a3

b1b2b3b433

c1c2c3c444

d1d2d3d4

e1e2e3e4e5

f1f2f3

g1g2

h1

i1i2i3i4i5

j1j2j3j4

k1k2

l1l2

m1m2m3

測(cè)試結(jié)果的表:

1234567

a122a2a3a3a3a3

b122b2b2b3b433

c122c2c3c44433

d122d2d3d44433

e122e2e3e4e533

f122f2f3f3f3f3

g122g2g2g2g2g2

h1h1h1h1h1h1h1

i1i2i2i2i3i4i5

j1j2j2j2j3j4j4

k1k1k1k1k1k1k2

l1l1l1l1l1l1l2

m1m1m1m1m1m2m3

中國(guó)最大的web開發(fā)資源網(wǎng)站及技術(shù)社區(qū),

總結(jié)

以上是生活随笔為你收集整理的如何用php获取网页表格,PHP获取网页上任意表格中内容的通用程序的制作的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。