Solved

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

Posted on 2006-11-20
8
178 Views
Last Modified: 2013-11-19
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!
0
Comment
Question by:nelwa
  • 4
  • 2
8 Comments
 
LVL 6

Expert Comment

by:aescnt
ID: 17986010
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.
0
 
LVL 1

Author Comment

by:nelwa
ID: 17986075
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...
0
 
LVL 1

Author Comment

by:nelwa
ID: 18002449
ok, so is nobody going to help me with this??
0
Efficient way to get backups off site to Azure

This user guide provides instructions on how to deploy and configure both a StoneFly Scale Out NAS Enterprise Cloud Drive virtual machine and Veeam Cloud Connect in the Microsoft Azure Cloud.

 
LVL 1

Author Comment

by:nelwa
ID: 18002506
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
0
 
LVL 6

Expert Comment

by:aescnt
ID: 18002516
Sorry, the code required for that is rather too complicated to write quickly.
0
 
LVL 1

Author Comment

by:nelwa
ID: 18002840
I have found a solution to my problem: http://cyberai.com/inputfilter/

Thanks
0
 
LVL 1

Accepted Solution

by:
Computer101 earned 0 total points
ID: 18256196
PAQed with points refunded (500)

Computer101
EE Admin
0

Featured Post

VMware Disaster Recovery and Data Protection

In this expert guide, you’ll learn about the components of a Modern Data Center. You will use cases for the value-added capabilities of Veeam®, including combining backup and replication for VMware disaster recovery and using replication for data center migration.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

What is Node.js? Node.js is a server side scripting language much like PHP or ASP but is used to implement the complete package of HTTP webserver and application framework. The difference is that Node.js’s execution engine is asynchronous and event…
Introduction Since I wrote the original article about Handling Date and Time in PHP and MySQL (http://www.experts-exchange.com/articles/201/Handling-Date-and-Time-in-PHP-and-MySQL.html) several years ago, it seemed like now was a good time to updat…
Viewers will learn one way to get user input in Java. Introduce the Scanner object: Declare the variable that stores the user input: An example prompting the user for input: Methods you need to invoke in order to properly get  user input:
The viewer will receive an overview of the basics of CSS showing inline styles. In the head tags set up your style tags: (CODE) Reference the nav tag and set your properties.: (CODE) Set the reference for the UL element and styles for it to ensu…

832 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question