跪求php正则表达式提取表格中的内容并保存为数组
从下面表格内容中提取,从第二个TR开始,保存为一个二维数组,把输出数组的语言也写出来<TABLEcellSpacing=0cellPadding=0width="100%...
从下面表格内容中提取,从第二个TR开始,保存为一个二维数组,把输出数组的语言也写出来
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD class=zx_data width="10%">截止时间</TD>
<TD class=zx_data3 width="42%">银行名称</TD>
<TD class=zx_data3 width="18%">分支数量</TD>
<TD class=zx_data3 width="15%">所占比例(%)</TD>
<TD class=zx_data3 width="15%">银行大小</TD></TR>
<TR>
<TD class=zx_data rowSpan=10>20101231</TD>
<TD class=zx_data3>1.中国银行</TD>
<TD class=zx_data3>2,752,881</TD>
<TD class=zx_data3>1.529</TD>
<TD class=zx_data3>大银行</TD></TR>
<TR>
<TD class=zx_data3>2.中国农行</TD>
<TD class=zx_data3>2,513,239</TD>
<TD class=zx_data3>1.396</TD>
<TD class=zx_data3>大银行</TD></TR>
<TR>
<TD class=zx_data3>3.中国建设银行</TD>
<TD class=zx_data3>2,026,790</TD>
<TD class=zx_data3>1.126</TD>
<TD class=zx_data3>大银行</TD></TR>
<TR>
<TD class=zx_data3>4.招商银行</TD>
<TD class=zx_data3>1,594,735</TD>
<TD class=zx_data3>0.886</TD>
<TD class=zx_data3>大银行</TD></TR> 展开
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD class=zx_data width="10%">截止时间</TD>
<TD class=zx_data3 width="42%">银行名称</TD>
<TD class=zx_data3 width="18%">分支数量</TD>
<TD class=zx_data3 width="15%">所占比例(%)</TD>
<TD class=zx_data3 width="15%">银行大小</TD></TR>
<TR>
<TD class=zx_data rowSpan=10>20101231</TD>
<TD class=zx_data3>1.中国银行</TD>
<TD class=zx_data3>2,752,881</TD>
<TD class=zx_data3>1.529</TD>
<TD class=zx_data3>大银行</TD></TR>
<TR>
<TD class=zx_data3>2.中国农行</TD>
<TD class=zx_data3>2,513,239</TD>
<TD class=zx_data3>1.396</TD>
<TD class=zx_data3>大银行</TD></TR>
<TR>
<TD class=zx_data3>3.中国建设银行</TD>
<TD class=zx_data3>2,026,790</TD>
<TD class=zx_data3>1.126</TD>
<TD class=zx_data3>大银行</TD></TR>
<TR>
<TD class=zx_data3>4.招商银行</TD>
<TD class=zx_data3>1,594,735</TD>
<TD class=zx_data3>0.886</TD>
<TD class=zx_data3>大银行</TD></TR> 展开
1个回答
展开全部
<?php
$content = '<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD class=zx_data width="10%">截止时间</TD>
<TD class=zx_data3 width="42%">银行名称</TD>
<TD class=zx_data3 width="18%">分支数量</TD>
<TD class=zx_data3 width="15%">所占比例(%)</TD>
<TD class=zx_data3 width="15%">银行大小</TD></TR>
<TR>
<TD class=zx_data rowSpan=10>20101231</TD>
<TD class=zx_data3>1.中国银行</TD>
<TD class=zx_data3>2,752,881</TD>
<TD class=zx_data3>1.529</TD>
<TD class=zx_data3>大银行</TD></TR>
<TR>
<TD class=zx_data3>2.中国农行</TD>
<TD class=zx_data3>2,513,239</TD>
<TD class=zx_data3>1.396</TD>
<TD class=zx_data3>大银行</TD></TR>
<TR>
<TD class=zx_data3>3.中国建设银行</TD>
<TD class=zx_data3>2,026,790</TD>
<TD class=zx_data3>1.126</TD>
<TD class=zx_data3>大银行</TD></TR>
<TR>
<TD class=zx_data3>4.招商银行</TD>
<TD class=zx_data3>1,594,735</TD>
<TD class=zx_data3>0.886</TD>
<TD class=zx_data3>大银行</TD></TR>';
$content =explode('<TR>',$content);
$arr = array();
for($i=2;$i<count($content);$i++){
preg_match_all('/<TD class=zx_data3>(.*)<\/TD>/iU',$content[$i],$match);
$arr[] = $match[1];
}
print_r($arr);
?>
$content = '<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD class=zx_data width="10%">截止时间</TD>
<TD class=zx_data3 width="42%">银行名称</TD>
<TD class=zx_data3 width="18%">分支数量</TD>
<TD class=zx_data3 width="15%">所占比例(%)</TD>
<TD class=zx_data3 width="15%">银行大小</TD></TR>
<TR>
<TD class=zx_data rowSpan=10>20101231</TD>
<TD class=zx_data3>1.中国银行</TD>
<TD class=zx_data3>2,752,881</TD>
<TD class=zx_data3>1.529</TD>
<TD class=zx_data3>大银行</TD></TR>
<TR>
<TD class=zx_data3>2.中国农行</TD>
<TD class=zx_data3>2,513,239</TD>
<TD class=zx_data3>1.396</TD>
<TD class=zx_data3>大银行</TD></TR>
<TR>
<TD class=zx_data3>3.中国建设银行</TD>
<TD class=zx_data3>2,026,790</TD>
<TD class=zx_data3>1.126</TD>
<TD class=zx_data3>大银行</TD></TR>
<TR>
<TD class=zx_data3>4.招商银行</TD>
<TD class=zx_data3>1,594,735</TD>
<TD class=zx_data3>0.886</TD>
<TD class=zx_data3>大银行</TD></TR>';
$content =explode('<TR>',$content);
$arr = array();
for($i=2;$i<count($content);$i++){
preg_match_all('/<TD class=zx_data3>(.*)<\/TD>/iU',$content[$i],$match);
$arr[] = $match[1];
}
print_r($arr);
?>
追问
能不能用二维数组保存;
另外把3.中国建设银行里的3.去掉,即去掉顺序。
就这么多了,回答出来给来你加30分
追答
这个代码输出的 $arr已经是 二维数组了 。 下面代码是改好的 去掉 顺序的
$content =explode('',$content);
$arr = array();
for($i=2;$i(.*)/iU',$content[$i],$match);
$ma = explode('.',$match[1][0]);
array_shift($ma);
$match[1][0] = implode('.',$ma);
$arr[] = $match[1];
}
print_r($arr);
?>
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询