Link to home
Start Free TrialLog in
Avatar of nelwa
nelwa

asked on

function to remove tags and/or tag attributes as I specify, and add tag attributes as I specify

Hi,

I need a php function that can allow me to remove tags & tag attributes into/from a string.

I should give the function the string to be processed and an array containing the attributes and attribute properties to be removed.

For example when a tag (<a>) has a style attribute, I want to be able to remove specific style properties for example border & padding, but leave the unspecified ones in tact - and if no attribute properties are specified, the entire attribute needs to be removed.

The function should also remove tags that I specify, including closing tags, and incorrectly opened / closed tags.

The function should work with xhtml & html

The second function should be able to add attributes to specified tags within the given string.  For example: After I stripped all attributes from my <a> tag in the given string, I want to be able to add a rel attribute with for example a nofollow and an external attribute property.

All functions should automatically remove all double tags, hacking attempts, etc... for example it should remove all tags except those I specify as safe, similar to the php strip_tags function.  It should check for things like these:

<!-- I want to put a <div>tag</div> -->
<!-- Or a carrot > -->
<![CDATA[what about this! It's to protect from HTML characters like <tag>, > and so on in XML, no?]]> -->

If I'm not exactly clear on everything, please let me know, but I think this is pretty clear.  The functions will be used primarily to process blog replies.

Thanks for any help!
Avatar of aescnt
aescnt

Hi,

If you want to clean up 3rd party HTML (like for blog comments), you'll love this project: http://pixel-apes.com/safehtml/

I don't think it does nofollow or style-stripping, but it does some essential things to HTML to make it 'safe.' (XSS issues and such.) After passing your 3rd party HTML through it, I'm sure you can use regex afterwards to add nofollow and remove styles.
Avatar of nelwa

ASKER

ok, yes so that function will work to remove xss and such, but now I need something to add attributes and attribute properties to certain tags...
Avatar of nelwa

ASKER

ok, so is nobody going to help me with this??
Avatar of nelwa

ASKER

All I need now is a function to remove all tag attributes, and another function that can add attributes with properties to the tags I specify... any help appreciated.

Thanks
Sorry, the code required for that is rather too complicated to write quickly.
Avatar of nelwa

ASKER

I have found a solution to my problem: http://cyberai.com/inputfilter/

Thanks
ASKER CERTIFIED SOLUTION
Avatar of Computer101
Computer101
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial