導航:首頁 > 編程語言 > 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正則表格相關的資料

熱點內容
阿里雲伺服器終端在哪裡 瀏覽:144
app紙有什麼用 瀏覽:219
cuteftp命令 瀏覽:502
最開始的編程語言是什麼 瀏覽:757
at遠程命令 瀏覽:490
雲伺服器哪家好點 瀏覽:211
android系統源碼閱讀 瀏覽:924
dumpjava分析工具 瀏覽:678
怎麼下載cpu源碼 瀏覽:154
代碼加密怎麼取消 瀏覽:888
編譯原理代碼在哪裡運行 瀏覽:584
解密攝影pdf 瀏覽:72
演算法編程中級題目 瀏覽:250
c語言編譯器畢業設計 瀏覽:717
醫保卡申請app哪個好 瀏覽:945
阿里雲伺服器上傳源碼 瀏覽:602
營銷管理科特勒pdf 瀏覽:696
願望清單app哪個好 瀏覽:461
安卓外放聲音怎麼解決 瀏覽:195
脈脈app干什麼用的 瀏覽:361