Pastie now auto-senses if line-wrap is a bad or good idea. Feedback?
## mark a section (Learn more)
This paste will be private.
<?php $xmlLoc = $_GET['g']; $file = fopen($xmlLoc, "w+") or die("Can't open XML file"); // create array containing CDATA tags that get destroyed // these are unlikely to crop up anywhere else in an XML since they are so specific $oldChars = array('<p>', '</p>'); // create array containing desired replacements for mangled CDATA tags $newChars = array('<![CDATA[<p>', '</p>]]>'); // use the ever-so-handy php replace string function to replace // every instance of a mangled CDATA opening and closing tag with a corrected version $xmlcdRep = str_replace($oldChars, $newChars, $HTTP_RAW_POST_DATA); // use html entity encode to fix the remaining garbled html tags $xmlString = html_entity_decode($xmlcdRep); // hopefully by here - the mangled tags will be properly reformatted and // the xml can saved back to the server correctly // the only thing i don't know how to do is to preserve the visual // spacing structure so if you open the xml in dreamweaver or text // editor, it still retains it's original well laid out form. if(!fwrite($file, $xmlString)){ print "<?xml version=\"1.0\" encoding=\"utf-8\"?><output>Error writing to XML-file</output>"; }else{ print "<?xml version=\"1.0\" encoding=\"utf-8\"?><output>XML File Saved</output>"; } fclose($file); ?>
From the Design Piracy series on my blog: