导航:首页 > 编程语言 > php正则表格

php正则表格

发布时间:2022-08-26 04:49:10

php用正则表达式从html中截取表格内容,把第二个表格取出来并输出

跟 之前是一样的问题 对吗?

-----------------------------

<?php

$content = '<div class="zx_info">
<form id="cninfoform" name="cninfoform" action=“" method="post" onsubmit="">
<input type="hidden" id="sc" name="sc" value="stock"/>
<input type="hidden" id="map" name="map" value=""/>
<table border="0" cellspacing="3" cellpadding="0">
<tr>
<td style="padding-right:10px" ></td>
<td valign="middle" >
<label>
<input id="stockID_" name="stockID_" type="text" onFocus="this.select()"
onClick="if(this.value==\'简称/拼音\')this.value=\'\'"
onMouseOver="this.focus()"
title="代码/简称/拼音"
style="WIDTH: 100px"
value=\'简称/拼音\'
autocomplete="off"
maxlength="6" />
</label>
</td>
<td>
<label>
<input type="submit" name="button" id="button" value="选择" class="input2" onClick="return true;"/>
</label>
</td>
</tr>
</table></form></div>

<div class="clear2">

<!-- 左边列表开始-->
<div class="zx_left">
<div class="zx_right_title">
<p>流通</p>
</div>
<div class="clear">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="10%" class="zx_data">截止时间</td>
<td width="42%" class="zx_data3">名称</td>
<td width="18%" class="zx_data3">数量</td>
<td width="15%" class="zx_data3">比例</td>
<td width="15%" class="zx_data3">性质</td>
</tr>

<tr>
<td rowspan="10" class="zx_data">20101231</td>
<td class="zx_data3">1.王维航</td>
<td class="zx_data3">53,810,630</td>
<td class="zx_data3">10.658</td>
<td class="zx_data3">流通</td>
</tr>

<tr>
<td class="zx_data3">2.苏纲</td>
<td class="zx_data3">53,255,463</td>
<td class="zx_data3">10.548</td>
<td class="zx_data3">流通</td>
</tr>
<tr>
<td class="zx_data3">8.杨成寿</td>
<td class="zx_data3">7,200,000</td>
<td class="zx_data3">1.426</td>
<td class="zx_data3">中通</td>
</tr>

<tr>
<td class="zx_data3">9.荆涛</td>
<td class="zx_data3">7,012,547</td>
<td class="zx_data3">1.389</td>
<td class="zx_data3">中通</td>
</tr>
</table>';

$content =explode('<tr>',$content);

$arr = array();
for($i=3;$i<count($content);$i++){
preg_match_all('/<td class="zx_data3">(.*)<\/td>/iU',$content[$i],$match);
$ma = explode('.',$match[1][0]);
array_shift($ma);
$match[1][0] = implode('.',$ma);
$arr[] = $match[1];
}

print_r($arr);
?>

㈡ php正则提取网页表格内容,并插入mysql数据库,请问我的代码哪里有问题

1.上面是$contents,下面怎么用$content[$i]呢
2.preg_match_all匹配到的东西在第三个参数$match里面,是数组。可以用var_mp($match);看看是否匹配到东东了。

㈢ php 正则表达式 获取表格的每行数据

给个正则你
(?<=<td>).*(?=</td>)
接着再用preg_replace和strip_tags这两个函数去掉不要的html标签

㈣ 跪求php正则表达式提取表格中的内容并保存为数组

<?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);
?>

㈤ php匹配html表格中内容的正则

preg_match_all( '/<tr> ([\w\W]*)<\/tr>/U', $html, $result)
试试。。

㈥ php 正则表达式

建议你到我的网站上下载PHP5参考手册,里边有详细的正则表达式的参考。
模式要有开始和结束的字符,一下都是合法的:
/
|
#
'
前提是模式中不能再出现这个字符了。
结尾的/后边的is是模式修政府,具体如下
i (PCRE_CASELESS)
如果设定此修正符,模式中的字符将同时匹配大小写字母。
m(PCRE_MULTILINE)
默认情况下,PCRE 将目标字符串作为单一的一“行”字符所组成的(甚至其中包含有换行符也是如此)。“行起始”元字符(^)仅仅匹配字符串的起始,“行结束”元字符($)仅仅匹配字符串的结束,或者最后一个字符是换行符时其前面(除非设定了 D 修正符)。这和 Perl 是一样的。

当设定了此修正符,“行起始”和“行结束”除了匹配整个字符串开头和结束外,还分别匹配其中的换行符的之后和之前。这和 Perl 的 /m 修正符是等效的。如果目标字符串中没有“\n”字符或者模式中没有 ^ 或 $,则设定此修正符没有任何效果。

s(PCRE_DOTALL)
如果设定了此修正符,模式中的圆点元字符(.)匹配所有的字符,包括换行符。没有此设定的话,则不包括换行符。这和 Perl 的 /s 修正符是等效的。排除字符类例如 [^a] 总是匹配换行符的,无论是否设定了此修正符。
x(PCRE_EXTENDED)
如果设定了此修正符,模式中的空白字符除了被转义的或在字符类中的以外完全被忽略,在未转义的字符类之外的 # 以及下一个换行符之间的所有字符,包括两头,也都被忽略。这和 Perl 的 /x 修正符是等效的,使得可以在复杂的模式中加入注释。然而注意,这仅适用于数据字符。空白字符可能永远不会出现于模式中的特殊字符序列,例如引入条件子模式的序列 (?( 中间。
e
如果设定了此修正符,preg_replace() 在替换字符串中对逆向引用作正常的替换,将其作为 PHP 代码求值,并用其结果来替换所搜索的字符串。

只有 preg_replace() 使用此修正符,其它 PCRE 函数将忽略之。

注意: 本修正符在 PHP3 中不可用。

A(PCRE_ANCHORED)
如果设定了此修正符,模式被强制为“anchored”,即强制仅从目标字符串的开头开始匹配。此效果也可以通过适当的模式本身来实现(在 Perl 中实现的唯一方法)。
D(PCRE_DOLLAR_ENDONLY)
如果设定了此修正符,模式中的美元元字符仅匹配目标字符串的结尾。没有此选项时,如果最后一个字符是换行符的话,美元符号也会匹配此字符之前(但不会匹配任何其它换行符之前)。如果设定了 m 修正符则忽略此选项。Perl 中没有与其等价的修正符。
S
当一个模式将被使用若干次时,为加速匹配起见值得先对其进行分析。如果设定了此修正符则会进行额外的分析。目前,分析一个模式仅对没有单一固定起始字符的 non-anchored 模式有用。
U(PCRE_UNGREEDY)
本修正符反转了匹配数量的值使其不是默认的重复,而变成在后面跟上“?”才变得重复。这和 Perl 不兼容。也可以通过在模式之中设定 (?U) 修正符或者在数量符之后跟一个问号(如 .*?)来启用此选项。
X(PCRE_EXTRA)
此修正符启用了一个 PCRE 中与 Perl 不兼容的额外功能。模式中的任何反斜线后面跟上一个没有特殊意义的字母导致一个错误,从而保留此组合以备将来扩充。默认情况下,和 Perl 一样,一个反斜线后面跟一个没有特殊意义的字母被当成该字母本身。当前没有其它特性受此修正符控制。
u(PCRE_UTF8)
此修正符启用了一个 PCRE 中与 Perl 不兼容的额外功能。模式字符串被当成 UTF-8。本修正符在 Unix 下自 PHP 4.1.0 起可用,在 win32 下自 PHP 4.2.3 起可用。自 PHP 4.3.5 起开始检查模式的 UTF-8 合法性。

㈦ PHP正则表达式

代码如下:
<?php
$text='
<div id="985665948" class="sign_bar2">

<div class="group_user">
<div class="group_logo"><a target="_blank" href="#t178414.html"><img src="" height="40" alt="问问团队" width="40"></img></a></div>
<div class="group_info"><a target="_blank" href="#t178414.html">SD敢达团队</a>
<a target="_blank" href="#t178414.html"><div class="ico_group_top5" title="团队信用排行"></div></a><a target="_blank" href="#t178414.html"><div class="ico_group_lv1" title="初级团"></div></a>

</div>
</div>';
preg_match('/<div id="985665948" class="sign_bar2">([\s\S]*)<\/div>/', $text, $matches);
$text = str_replace($matches[1],'',$text);
echo $text;
?>
测试过可以。
另外preg_replace好像没有替换子模式的功能,所以采用了(preg_match+str_replace)的组合,谁知道用preg_replace实现请告知,谢谢。
另外如果是有多个替换,需要使用preg_match_all()。

㈧ 如何使用php正则去掉table除colspan和rowspan标签外的所有属性

去除 style j就可以了 啊 $("table").removeAttr("style").removeAttr("border");

㈨ php中正则怎么匹配table中的东西,table里面有属性

$preg='/<table[^>]*>[^<]*?(d+)</table>/';
if(preg_match_all($preg,$str,$matchs))
{
$result=$matchs[1];
}

$result就是匹配到的所有数字ID的数组了

㈩ php正则图片和表格替换的问题

看看给你举的例子是不是你要的结果。分三步:1,把所有关键字替换成超链接;2,把表格里被替换的关键字再换成原样;3,把图片里被替换的关键字再换成原样。这样正则就不用写的很复杂了。

//现在要把$str里的关键字abc换成超链接,table和img里的除外。
$str='wwwabcwww<table><tr><td><ahref="1.php">abc</a></td></tr><tr><td><ahref="2.php">abc</a></td></tr></table>wwwabcwww<imgsrc="xxx"alt="abc"/>wwwabcwww<table><tr><td><ahref="3.php">abc</a></td></tr><tr><td><ahref="4.php">abc</a></td></tr></table>wwwabcwww<imgsrc="xxx"alt="abc"/>wwwabcwww';

//把所有的关键字abc都替换成超链接,不管哪里的关键字。
$str_new=preg_replace('/abc/i','<ahref="888.php">abc</a>',$str);

//把table里被换成超链接的关键字再换回去
$pattern_table='/<table>.*?</table>/i';
preg_match_all($pattern_table,$str_new,$arr);
foreach($arr[0]as&$val){
$val=preg_replace('/<ahref="888.php">abc</a>/i','abc',$val);
}
for($i=0;$i<count($arr[0]);$i++){
$pattern_table_arr[]='/<table>.*?</table>/i';
}
$str_new=preg_replace($pattern_table_arr,$arr[0],$str_new,1);

//把img里被换成超链接的关键字再换回去
$pattern_img='/<img.*?>/i';
preg_match_all($pattern_img,$str_new,$arr);
foreach($arr[0]as&$val){
$val=preg_replace('/<ahref="888.php">abc</a>/i','abc',$val);
}
for($i=0;$i<count($arr[0]);$i++){
$pattern_img_arr[]='/<img.*?>/i';
}
$str_new=preg_replace($pattern_img_arr,$arr[0],$str_new,1);

//查看替换后的结果
echohtmlentities($str_new);
阅读全文

与php正则表格相关的资料

热点内容
脉脉app干什么用的 浏览:357
拽姐是哪个app 浏览:858
云服务器删除了还有吗 浏览:232
macbook可以用单片机嘛 浏览:307
南阳php招聘 浏览:814
去哪里找按摩师很漂亮的app 浏览:818
86x99用简便算法计算 浏览:830
php截图flash 浏览:273
卸载联想app哪个好 浏览:719
php文字转图片 浏览:330
豆客后台怎么加密码 浏览:574
jpg转换pdf破解版 浏览:978
php基础书籍推荐 浏览:777
服务器与外网不通如何验证 浏览:351
电子版是不是就是文件夹 浏览:51
游戏属性文件加密 浏览:464
如何让安卓手机桌面图标下移 浏览:530
ubuntuphp5环境搭建 浏览:101
赌瘾解压视频 浏览:919
晋城移动dns服务器地址 浏览:296