On Thu, Jun 06, 2002 at 12:47:57PM +0100, Daniel Pupius wrote:

> Hi there. I'm working with RDF/XML that is strict on what characters are
> allowed within the elements and attributes. I was wondering if anyone had a
> script that processed a string and replaced all illegal-characters with
> their HTML code, for example "&" is converted to & and " to ". It should
> also work for characters like "é".

Here's what I use.  I grab the file and stick it into the $Contents
string.  Then, I clean it up with the following regex's.  Finally, I 
pass it to the parse function.

   #  Escape ampersands.
   $Contents = preg_replace('/(&|&)/i', '&', $Contents);

   #  Remove all non-visible characters except SP, TAB, LF and CR.
   $Contents = preg_replace('/[^\x20-\x7E\x09\x0A\x0D]/', "\n", $Contents);

Of course, you can similarly tweak $Contents to drop or modify any other
characters you wish.

That's snipet is from my PHP XML Parsing Basics tutorial at
http://www.analysisandsolutions.com/code/phpxml.htm


> It would be possible to process the strings before they are inserted into
> the XML document - if that is easier.

While that's nice, it's not fool proof.  What if someone circumvents
your insertion process and gets a bad file into the mix?  You still need
to clean things as they come out just to be safe.

Enjoy,

--Dan

-- 
               PHP classes that make web design easier
        SQL Solution  |   Layout Solution   |  Form Solution
    sqlsolution.info  | layoutsolution.info |  formsolution.info
 T H E   A N A L Y S I S   A N D   S O L U T I O N S   C O M P A N Y
 4015 7 Av #4AJ, Brooklyn NY     v: 718-854-0335     f: 718-854-0409

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to