strip tag based on attribute
Moderator: General Moderators
- kendall
- Forum Regular
- Posts: 852
- Joined: Tue Jul 30, 2002 10:21 am
- Location: Trinidad, West Indies
- Contact:
strip tag based on attribute
Hey guys can anyone give me a regular expression to strip a tag based on an attribute value?
I'm trying to strip a <td> tag if the class="hide" however the class may contain other styles
I'm trying to strip a <td> tag if the class="hide" however the class may contain other styles
- AbraCadaver
- DevNet Master
- Posts: 2572
- Joined: Mon Feb 24, 2003 10:12 am
- Location: The Republic of Texas
- Contact:
Re: strip tag based on attribute
Not tested, but something like this should work (maybe someone else has a simpler one). Also, I'm assuming you want to strip from the <td up to and including the </td>:
If you need to handle cases where class may be class="hide important red", then this may work:
-Shawn
Code: Select all
$stripped = preg_replace('#<td[^>]+?class="hide"[^>]+>.*(?=</td>)</td>#i', '', $html);Code: Select all
$stripped = preg_replace('#<td[^>]+?class="hide[^"]*?"[^>]+>.*(?=</td>)</td>#i', '', $html);mysql_function(): WARNING: This extension is deprecated as of PHP 5.5.0, and will be removed in the future. Instead, the MySQLi or PDO_MySQLextension should be used. See also MySQL: choosing an API guide and related FAQ for more information.
- kendall
- Forum Regular
- Posts: 852
- Joined: Tue Jul 30, 2002 10:21 am
- Location: Trinidad, West Indies
- Contact:
Re: strip tag based on attribute
I tried this one...but the "hide" is at the end....didnt work...the "hide" is at the last style of the class attributeAbraCadaver wrote: If you need to handle cases where class may be class="hide important red", then this may work:
-ShawnCode: Select all
$stripped = preg_replace('#<td[^>]+?class="hide[^"]*?"[^>]+>.*(?=</td>)</td>#i', '', $html);
- AbraCadaver
- DevNet Master
- Posts: 2572
- Joined: Mon Feb 24, 2003 10:12 am
- Location: The Republic of Texas
- Contact:
Re: strip tag based on attribute
Simplified I hope:
-Shawn
Code: Select all
$stripped = preg_replace('#<td[^>]+?class=".*?hide.*?</td>#i', '', $html);mysql_function(): WARNING: This extension is deprecated as of PHP 5.5.0, and will be removed in the future. Instead, the MySQLi or PDO_MySQLextension should be used. See also MySQL: choosing an API guide and related FAQ for more information.
- kendall
- Forum Regular
- Posts: 852
- Joined: Tue Jul 30, 2002 10:21 am
- Location: Trinidad, West Indies
- Contact:
Re: strip tag based on attribute
This seams to strip TD that dont have the "hide" as well...only if the class has a hide in it should it replace the TDAbraCadaver wrote:Simplified I hope:
-ShawnCode: Select all
$stripped = preg_replace('#<td[^>]+?class=".*?hide.*?</td>#i', '', $html);
Code: Select all
<TABLE cellSpacing=0 cellPadding=7>
<TBODY>
<TR>
<TD class=year align=left spry$$uid="1" spry$$ID="undefined" spryEventListenerID="e1">Year</TD>
<TD class="hide" align=middle spry$$uid="1" spry$$ID="undefined" spryEventListenerID="e3">Quarter</TD>
<TD class="monTD hide" align=left spry$$uid="1" spry$$ID="undefined" spryEventListenerID="e4">MonTD</TD><!-- <TD>@Cnt_Cntry</TD> -->
<TD class=currency align=left spry$$uid="1" spry$$ID="undefined" spryEventListenerID="e5"># Funds Per Currency</TD>
<TD class=country align=left spry$$uid="1" spry$$ID="undefined" spryEventListenerID="e6"># Funds Per Country</TD>
<TD class=type align=left spry$$uid="1" spry$$ID="undefined" spryEventListenerID="e7"># Funds Per Type</TD></TR>
<TR class=even>
<TD class=year align=left spry$$uid="1" spry$$ID="undefined" spryEventListenerID="e8">2000</TD>
<TD class="quarter style1 hide" align=middle spry$$ID="undefined">1</TD>
<TD class="monTD style1 hide" align=left spry$$uid="1" spry$$ID="undefined" spryEventListenerID="e9">March</TD><!-- <td>TRINIDAD AND TOBAGO</td> -->
<TD class="currency style1" align=left>United States Dollar(16)<BR></TD>
<TD class="country style1" align=left>TRINIDAD AND TOBAGO(1)<BR></TD>
<TD class="type style1" align=left>MUTUAL FUND (2)<BR></TD></TR>
<TR class=odd>
<TD class=year align=left spry$$uid="1" spry$$ID="undefined" spryEventListenerID="e10">2001</TD>
<TD class="quarter style1 hide" align=middle spry$$ID="undefined">3</TD>
<TD class="monTD style1 hide" align=left spry$$uid="1" spry$$ID="undefined" spryEventListenerID="e11">September</TD><!-- <td>TRINIDAD AND TOBAGO</td> -->
<TD class="currency style1" align=left>Trinidad and Tobago Dollar(4)<BR></TD>
<TD class="country style1" align=left></TD>
<TD class="type style1" align=left>OTDER (2)<BR></TD></TR>
<TR class=odd>
<TD class=year align=left spry$$uid="1" spry$$ID="undefined" spryEventListenerID="e12"></TD>
<TD class="quarter style1 hide" align=middle spry$$ID="undefined">4</TD>
<TD class="monTD style1 hide" align=left spry$$uid="1" spry$$ID="undefined" spryEventListenerID="e13">October</TD><!-- <td>BARBADOS</td> -->
<TD class="currency style1" align=left>Barbados Dollar(1)<BR></TD>
<TD class="country style1" align=left>BARBADOS(1)<BR></TD>
<TD class="type style1" align=left>REAL PROPERTY (1)<BR></TD></TR>
<TR class=odd>
<TD class=year align=left spry$$uid="1" spry$$ID="undefined" spryEventListenerID="e14"></TD>
<TD class="quarter style1 hide" align=middle spry$$ID="undefined"></TD>
<TD class="monTD style1 hide" align=left spry$$uid="1" spry$$ID="undefined" spryEventListenerID="e15">November</TD><!-- <td>TRINIDAD AND TOBAGO</td> -->
<TD class="currency style1" align=left>United States Dollar(1)<BR></TD>
<TD class="country style1" align=left>TRINIDAD AND TOBAGO(5)<BR></TD>
<TD class="type style1" align=left>MUTUAL FUND (2)<BR></TD></TR>
<TR class=odd>
<TD class=year align=left spry$$uid="1" spry$$ID="undefined" spryEventListenerID="e16"></TD>
<TD class="quarter style1 hide" align=middle spry$$ID="undefined"></TD>
<TD class="monTD style1 hide" align=left spry$$uid="1" spry$$ID="undefined" spryEventListenerID="e17">December</TD><!-- <td>TRINIDAD AND TOBAGO</td> -->
<TD class="currency style1" align=left>Trinidad and Tobago Dollar(4)<BR></TD>
<TD class="country style1" align=left></TD>
<TD class="type style1" align=left>FIXED INCOME (1)<BR></TD></TR>
<TR class=even>
<TD class=year align=left spry$$uid="1" spry$$ID="undefined" spryEventListenerID="e18">2002</TD>
<TD class="quarter style1 hide" align=middle spry$$ID="undefined">3</TD>
<TD class="monTD style1 hide" align=left spry$$uid="1" spry$$ID="undefined" spryEventListenerID="e19">August</TD><!-- <td>TRINIDAD AND TOBAGO</td> -->
<TD class="currency style1" align=left></TD>
<TD class="country style1" align=left></TD>
<TD class="type style1" align=left>REAL PROPERTY (1)<BR></TD></TR>
<TR class=odd>
<TD class=year align=left spry$$uid="1" spry$$ID="undefined" spryEventListenerID="e20">2003</TD>
<TD class="quarter style1 hide" align=middle spry$$ID="undefined">1</TD>
<TD class="monTD style1 hide" align=left spry$$uid="1" spry$$ID="undefined" spryEventListenerID="e21">February</TD><!-- <td>JAMAICA</td> -->
<TD class="currency style1" align=left>United States Dollar(2)<BR></TD>
<TD class="country style1" align=left>JAMAICA(1)<BR></TD>
<TD class="type style1" align=left>OTDER (1)<BR></TD></TR>
<TR class=odd>
<TD class=year align=left spry$$uid="1" spry$$ID="undefined" spryEventListenerID="e22"></TD>
<TD class="quarter style1 hide" align=middle spry$$ID="undefined">2</TD>
<TD class="monTD style1 hide" align=left spry$$uid="1" spry$$ID="undefined" spryEventListenerID="e23">May</TD><!-- <td>TRINIDAD AND TOBAGO</td> -->
<TD class="currency style1" align=left>Trinidad and Tobago Dollar(5)<BR></TD>
<TD class="country style1" align=left>TRINIDAD AND TOBAGO(1)<BR></TD>
<TD class="type style1" align=left>Mutual Fund (1)<BR></TD></TR>
<TR class=even>
<TD class=year align=left spry$$uid="1" spry$$ID="undefined" spryEventListenerID="e24">2004</TD>
<TD class="quarter style1 hide" align=middle spry$$ID="undefined"></TD>
<TD class="monTD style1 hide" align=left spry$$uid="1" spry$$ID="undefined" spryEventListenerID="e25">June</TD><!-- <td>TRINIDAD AND TOBAGO</td> -->
<TD class="currency style1" align=left>United States Dollar(3)<BR></TD>
<TD class="country style1" align=left></TD>
<TD class="type style1" align=left>OTDER (2)<BR></TD></TR>
<TR class=even>
<TD class=year align=left spry$$uid="1" spry$$ID="undefined" spryEventListenerID="e26"></TD>
<TD class="quarter style1 hide" align=middle spry$$ID="undefined">3</TD>
<TD class="monTD style1 hide" align=left spry$$uid="1" spry$$ID="undefined" spryEventListenerID="e27">August</TD><!-- <td>CANADA</td> -->
<TD class="currency style1" align=left>Trinidad and Tobago Dollar(14)<BR></TD>
<TD class="country style1" align=left>CANADA(10)<BR></TD>
<TD class="type style1" align=left>MUTUAL FUND (2)<BR></TD></TR>
<TR class=even>
<TD class=year align=left spry$$uid="1" spry$$ID="undefined" spryEventListenerID="e28"></TD>
<TD class="quarter style1 hide" align=middle spry$$ID="undefined"></TD>
<TD class="monTD style1 hide" align=left spry$$uid="1" spry$$ID="undefined" spryEventListenerID="e29"></TD><!-- <td>CANADA</td> -->
<TD class="currency style1" align=left></TD>
<TD class="country style1" align=left></TD>
<TD class="type style1" align=left>CORPORATE FUND (9)<BR></TD></TR>
<TR class=odd>
<TD class=year align=left spry$$uid="1" spry$$ID="undefined" spryEventListenerID="e30">2005</TD>
<TD class="quarter style1 hide" align=middle spry$$ID="undefined">2</TD>
<TD class="monTD style1 hide" align=left spry$$uid="1" spry$$ID="undefined" spryEventListenerID="e31">April</TD><!-- <td>JAMAICA</td> -->
<TD class="currency style1" align=left>United States Dollar(10)<BR></TD>
<TD class="country style1" align=left>JAMAICA(4)<BR></TD>
<TD class="type style1" align=left>OTDER (3)<BR></TD></TR>
<TR class=odd>
<TD class=year align=left spry$$uid="1" spry$$ID="undefined" spryEventListenerID="e32"></TD>
<TD class="quarter style1 hide" align=middle spry$$ID="undefined"></TD>
<TD class="monTD style1 hide" align=left spry$$uid="1" spry$$ID="undefined" spryEventListenerID="e33"></TD><!-- <td>JAMAICA</td> -->
<TD class="currency style1" align=left></TD>
<TD class="country style1" align=left></TD>
<TD class="type style1" align=left>GROWTD/EQUITY (1)<BR></TD></TR>
<TR class=odd>
<TD class=year align=left spry$$uid="1" spry$$ID="undefined" spryEventListenerID="e34"></TD>
<TD class="quarter style1 hide" align=middle spry$$ID="undefined">3</TD>
<TD class="monTD style1 hide" align=left spry$$uid="1" spry$$ID="undefined" spryEventListenerID="e35">August</TD><!-- <td>CANADA</td> -->
<TD class="currency style1" align=left>Trinidad and Tobago Dollar(9)<BR></TD>
<TD class="country style1" align=left>CANADA(1)<BR></TD>
<TD class="type style1" align=left>MUTUAL FUND (3)<BR></TD></TR>
<TR class=even>
<TD class=year align=left spry$$uid="1" spry$$ID="undefined" spryEventListenerID="e36">2006</TD>
<TD class="quarter style1 hide" align=middle spry$$ID="undefined">4</TD>
<TD class="monTD style1 hide" align=left spry$$uid="1" spry$$ID="undefined" spryEventListenerID="e37">November</TD><!-- <td>AUSTRALIA</td> -->
<TD class="currency style1" align=left>Australian Dollar(1)<BR></TD>
<TD class="country style1" align=left>AUSTRALIA(1)<BR></TD>
<TD class="type style1" align=left>OTDER (1)<BR></TD></TR>
<TR class=even>
<TD class=year align=left spry$$uid="1" spry$$ID="undefined" spryEventListenerID="e38"></TD>
<TD class="quarter style1 hide" align=middle spry$$ID="undefined"></TD>
<TD class="monTD style1 hide" align=left spry$$uid="1" spry$$ID="undefined" spryEventListenerID="e39"></TD><!-- <td>BARBADOS</td> -->
<TD class="currency style1" align=left>Barbados Dollar(2)<BR></TD>
<TD class="country style1" align=left>BARBADOS(2)<BR></TD>
<TD class="type style1" align=left>MUTUAL FUND (1)<BR></TD></TR>
<TR class=even>
<TD class=year align=left spry$$uid="1" spry$$ID="undefined" spryEventListenerID="e40"></TD>
<TD class="quarter style1 hide" align=middle spry$$ID="undefined"></TD>
<TD class="monTD style1 hide" align=left spry$$uid="1" spry$$ID="undefined" spryEventListenerID="e41"></TD><!-- <td>BARBADOS</td> -->
<TD class="currency style1" align=left></TD>
<TD class="country style1" align=left></TD>
<TD class="type style1" align=left>GROWTD/EQUITY (2)<BR></TD></TR>
<TR class=odd>
<TD class=year align=left spry$$uid="1" spry$$ID="undefined" spryEventListenerID="e42">2007</TD>
<TD class="quarter style1 hide" align=middle spry$$ID="undefined">2</TD>
<TD class="monTD style1 hide" align=left spry$$uid="1" spry$$ID="undefined" spryEventListenerID="e43">April</TD><!-- <td>TRINIDAD AND TOBAGO</td> -->
<TD class="currency style1" align=left>United States Dollar(11)<BR></TD>
<TD class="country style1" align=left>TRINIDAD AND TOBAGO(6)<BR></TD>
<TD class="type style1" align=left>MUTUAL FUND (2)<BR></TD></TR>
<TR class=odd>
<TD class=year align=left spry$$uid="1" spry$$ID="undefined" spryEventListenerID="e44"></TD>
<TD class="quarter style1 hide" align=middle spry$$ID="undefined">4</TD>
<TD class="monTD style1 hide" align=left spry$$uid="1" spry$$ID="undefined" spryEventListenerID="e45">November</TD><!-- <td>CANADA</td> -->
<TD class="currency style1" align=left>Trinidad and Tobago Dollar(4)<BR></TD>
<TD class="country style1" align=left>CANADA(1)<BR></TD>
<TD class="type style1" align=left>CORPORATE FUND (1)<BR></TD></TR>
<TR class=odd>
<TD class=year align=left spry$$uid="1" spry$$ID="undefined" spryEventListenerID="e46"></TD>
<TD class="quarter style1 hide" align=middle spry$$ID="undefined"></TD>
<TD class="monTD style1 hide" align=left spry$$uid="1" spry$$ID="undefined" spryEventListenerID="e47"></TD><!-- <td>SAINT LUCIA</td> -->
<TD class="currency style1" align=left>United States Dollar(11)<BR></TD>
<TD class="country style1" align=left>SAINT LUCIA(1)<BR></TD>
<TD class="type style1" align=left>BOND FUND (1)<BR></TD></TR>
<TR class=odd>
<TD class=year align=left spry$$uid="1" spry$$ID="undefined" spryEventListenerID="e48"></TD>
<TD class="quarter style1 hide" align=middle spry$$ID="undefined"></TD>
<TD class="monTD style1 hide" align=left spry$$uid="1" spry$$ID="undefined" spryEventListenerID="e49"></TD><!-- <td>LUXEMBOURG</td> -->
<TD class="currency style1" align=left></TD>
<TD class="country style1" align=left>LUXEMBOURG(1)<BR></TD>
<TD class="type style1" align=left>OTDER (1)<BR></TD></TR>
<TR class=odd>
<TD class=year align=left spry$$uid="1" spry$$ID="undefined" spryEventListenerID="e50"></TD>
<TD class="quarter style1 hide" align=middle spry$$ID="undefined"></TD>
<TD class="monTD style1 hide" align=left spry$$uid="1" spry$$ID="undefined" spryEventListenerID="e51">December</TD><!-- <td>TRINIDAD AND TOBAGO</td> -->
<TD class="currency style1" align=left></TD>
<TD class="country style1" align=left>TRINIDAD AND TOBAGO(6)<BR></TD>
<TD class="type style1" align=left>FIXED INCOME (1)<BR></TD></TR>
<TR class=odd>
<TD class=year align=left spry$$uid="1" spry$$ID="undefined" spryEventListenerID="e52"></TD>
<TD class="quarter style1 hide" align=middle spry$$ID="undefined"></TD>
<TD class="monTD style1 hide" align=left spry$$uid="1" spry$$ID="undefined" spryEventListenerID="e53"></TD><!-- <td>TRINIDAD AND TOBAGO</td> -->
<TD class="currency style1" align=left>European Union Euros(1)<BR></TD>
<TD class="country style1" align=left></TD>
<TD class="type style1" align=left>GROWTD/EQUITY (3)<BR></TD></TR>
<TR class=even>
<TD class=year align=left spry$$uid="1" spry$$ID="undefined" spryEventListenerID="e54">2008</TD>
<TD class="quarter style1 hide" align=middle spry$$ID="undefined">2</TD>
<TD class="monTD style1 hide" align=left spry$$uid="1" spry$$ID="undefined" spryEventListenerID="e55">April</TD><!-- <td>TRINIDAD AND TOBAGO</td> -->
<TD class="currency style1" align=left>United States Dollar(4)<BR></TD>
<TD class="country style1" align=left></TD>
<TD class="type style1" align=left>MUTUAL FUND (1)<BR></TD></TR>
<TR class=even>
<TD class=year align=left spry$$uid="1" spry$$ID="undefined" spryEventListenerID="e56"></TD>
<TD class="quarter style1 hide" align=middle spry$$ID="undefined"></TD>
<TD class="monTD style1 hide" align=left spry$$uid="1" spry$$ID="undefined" spryEventListenerID="e57">June</TD><!-- <td>CANADA</td> -->
<TD class="currency style1" align=left></TD>
<TD class="country style1" align=left>CANADA(2)<BR></TD>
<TD class="type style1" align=left>REAL PROPERTY (1)<BR></TD></TR>
<TR class=even>
<TD class=year align=left spry$$uid="1" spry$$ID="undefined" spryEventListenerID="e58"></TD>
<TD class="quarter style1 hide" align=middle spry$$ID="undefined"></TD>
<TD class="monTD style1 hide" align=left spry$$uid="1" spry$$ID="undefined" spryEventListenerID="e59"></TD><!-- <td>CANADA</td> -->
<TD class="currency style1" align=left></TD>
<TD class="country style1" align=left></TD>
<TD class="type style1" align=left>GROWTD/EQUITY (3)<BR></TD></TR>
<TR class=even>
<TD class=year align=left spry$$uid="1" spry$$ID="undefined" spryEventListenerID="e60"></TD>
<TD class="quarter style1 hide" align=middle spry$$ID="undefined">3</TD>
<TD class="monTD style1 hide" align=left spry$$uid="1" spry$$ID="undefined" spryEventListenerID="e61">September</TD><!-- <td>TRINIDAD AND TOBAGO</td> -->
<TD class="currency style1" align=left>Trinidad and Tobago Dollar(3)<BR></TD>
<TD class="country style1" align=left>TRINIDAD AND TOBAGO(5)<BR></TD>
<TD class="type style1" align=left>FIXED INCOME (2)<BR></TD></TR>
<TR class=odd>
<TD class=year align=left spry$$uid="1" spry$$ID="undefined" spryEventListenerID="e62">2009</TD>
<TD class="quarter style1 hide" align=middle spry$$ID="undefined">1</TD>
<TD class="monTD style1 hide" align=left spry$$uid="1" spry$$ID="undefined" spryEventListenerID="e63">February</TD><!-- <td>GIBRALTAR</td> -->
<TD class="currency style1" align=left>United States Dollar(1)<BR></TD>
<TD class="country style1" align=left>GIBRALTAR(1)<BR></TD>
<TD class="type style1" align=left>MUTUAL FUND (1)<BR></TD></TR>
<TR class=odd>
<TD class=year align=left spry$$uid="1" spry$$ID="undefined" spryEventListenerID="e64"></TD>
<TD class="quarter style1 hide" align=middle spry$$ID="undefined">3</TD>
<TD class="monTD style1 hide" align=left spry$$uid="1" spry$$ID="undefined" spryEventListenerID="e65">August</TD><!-- <td>TRINIDAD AND TOBAGO</td> -->
<TD class="currency style1" align=left>European Union Euros(1)<BR></TD>
<TD class="country style1" align=left>TRINIDAD AND TOBAGO(1)<BR></TD>
<TD class="type style1" align=left>FIXED INCOME (1)<BR></TD></TR></TBODY></TABLE>- kendall
- Forum Regular
- Posts: 852
- Joined: Tue Jul 30, 2002 10:21 am
- Location: Trinidad, West Indies
- Contact:
[SOLVED]Re: strip tag based on attribute
works$reg = '@<td[^>]+?class=".*?hide"[^>]+>.*?</td>@i';
- ridgerunner
- Forum Contributor
- Posts: 214
- Joined: Sun Jul 05, 2009 10:39 pm
- Location: SLC, UT
Re: strip tag based on attribute
Actually that regex has some problems and you are just plain lucky that it actually worked for your test data. (Of course if that was the only file you needed to process, then please disregard the following.)kendall wrote:works$reg = '@<td[^>]+?class=".*?hide"[^>]+>.*?</td>@i';![]()
First, your data has a mix of tag attributes; some are in double quotes, some aren't. Your regex will only find those which are quoted. If your data contained a non-quoted "hide" class attribute, then the regex would fail to match the following:
Code: Select all
<TD class=hide align=middle spry$$ID="undefined">1</TD>Code: Select all
<TD class="quarter hide style1" align=middle spry$$ID="undefined">1</TD>Code: Select all
<TD class="quarter style1 hide" align=middle spry$$ID="undefined">
1 DATA WITH LINEFEED
</TD>
Code: Select all
<TD class="hide">1</TD>Code: Select all
<TD class="class1">I get deleted!</TD><TD class="quarter style1 hide" align=middle spry$$ID="undefined">1</TD>Code: Select all
$text = preg_replace('%<td[^>]+?class\s*=\s*(?:hide\b|"[^"]*?\bhide\b[^"]*")[^>]*>.*?</td>%si', '', $text);- kendall
- Forum Regular
- Posts: 852
- Joined: Tue Jul 30, 2002 10:21 am
- Location: Trinidad, West Indies
- Contact:
Re: strip tag based on attribute
WOW
didnt even know this was the case. FORTUNATELY for me I am in control of the table output and the setting of the "hide" class. Thanks for this though as I will use it jess to be SAFE...

didnt even know this was the case. FORTUNATELY for me I am in control of the table output and the setting of the "hide" class. Thanks for this though as I will use it jess to be SAFE...