网站大量收购闲置独家精品文档,联系QQ:2885784924

用PHP获取网页上任意表格中内容的通用程序的制作.doc

用PHP获取网页上任意表格中内容的通用程序的制作.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
用PHP获取网页上任意表格中内容的通用程序的制作

用PHP获取网页上任意表格中内容的通用程序的制作 作者: 王朋武 Email: pengwuwang@ darlingpeng@ 在工作中,经常需要对网页上的表格内容进行处理,但是,由于表格内容制作过程中的随意性,跨行跨列经常发生,所以我作了这几个函数,以获取表格的内容. 程序中重要的地方已作了注解,所以在此不再重复说明. 经过测试,非常成功.所以拿出来供大家共享. ?php //作者: 王朋武 //日期: 2005,3,31 //目的: 获取网页上(任意跨行跨列的)表格中的内容 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(td, btd, $l_str); $l_b = explode(b, $l_str); //如有n个b,则分成(n+1)个组,最开始一项为空. for($j=0; $jcount($l_b); $j++) { /*不能反过来(即从右开始),否则在有些情况下会有错误,因为在表格的一行中如有几个连续的格跨行,则必须从左开始,否则下一行的列数就可能不够计算,即计算跨行时保存的列有可能大于下一行的总列数, 则操作就不会成功. 实测也证明. 如 +----+----+----+----+----+----+----+ +----+----+----+----+----+----+----+此一行保存7格, 前6格都有rowspan=2 +-----------------------------+----+此一行只保存2格 +----------------------------------+此一行只保存1格 */ $l_str = trim($l_b[$j]); if(eregi(rowspan, $l_str)) { $rowspan = preg_replace(/^td.+rowspan=[\\]?(\d{1,2})[\\]?.*/, \\1, $l_str); $rowcont = preg_replace(/^td.+rowspan=[\\]?\d{1,2}[\\]?.*(.+)\/td/, \\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是数组, r是插入的开始行,l是开始的列, add_n是跨多少行, add_cont是加的内容 { for($i=$r; $i$r+$add_n; $i++) { if($i == $r) { $l_str = eregi_replace(td, btd, $l_a[$i]); $l_b = explode(b, $l_str); $l_c = ; for($j=1; $jcount($l_b); $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(td, btd, $l_a[$i]); //加b分隔符 $l_b = explode(b, $l_str); //以b分组 $l_c = ; for($j=1; $j$l+$add_n; $j++) { //略过开始的空项,从1开始 if($j == $l) { $l_c .= td.$add_cont./td; } $l_c .= $l_b[$j]; }//end of for j $l_a[$i] = $l_c; //更新后的新内容 }//end of for i return $l_a; } func

文档评论(0)

zhuwenmeijiale + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:7065136142000003

1亿VIP精品文档

相关文档