> He wants a function that, if you put in $x, you get out 'x' > > For *ANY* $variable. > > There is no such function. > Usually the person asking it is doing something very > newbie-ish, and very wrong. Actually it's not either... Since you can't easily debug when generating XML, as malformed XML will STB, I have this function which dumps out an array and recursively sub arrays. It would be very useful to dump out the name of the variable as part of this, as a lot of text is on the screen with all the tags and such. It always annoyed me about print_r() that it doesn't tell you the variable name either, so you have to always prefix it with an echo/print just above the print_r. /** * Print out an array in XML form (useful for debugging) * @access public * @param string $myArray the array to output in XML format * @version 1.0 * @date 07/19/05 * @todo It would be nice if we could extract the array's variable name and output that as an attribute */ function print_r_xml($myArray) { print xmltag('ARRAY', null, 1); foreach($myArray as $k => $v) { if (is_array($v)) print_r_xml($v); else print xmltag($k,htmlspecialchars($v)); } print xmltag('ARRAY', null, 2); } /** * Add the starting, or ending, or both xml tags * * @return string xml formatted tags and data * @param string $xmltag is the tag name to surround * @param mixed $data data to output between the tags, if $data is an array, it will be expanded as KEY=VALUE in the tag * @param int $tagType 1=start tag only, 2=end tag only, 3=default * @version 1.2 * @date 06/14/05 */ function xmltag($xmltag, $data, $tagType = 3) { // remove spaces and make uppercase $xmltag = str_replace(' ','_', $xmltag ); //$xmltag = strtoupper( $xmltag ); $data = str_replace('&','&', $data ); // fix data with & $data = str_replace('<','<', $data ); // fix data with < $data = str_replace('>','>', $data ); // fix data with > if ($tagType == 3) { if (isset($data)) { if (is_array($data)) { $tmp = '<'.$xmltag; if (is_array($data)) { foreach($data as $key => $value) $tmp .= ' '.$key.'="'.$value.'"'; } $tmp .= " />\r\n"; return $tmp; } else return '<'.$xmltag.'>'.$data.'</'.$xmltag.">\r\n"; } else return '<'.$xmltag." />\r\n"; } if ($tagType == 1) { $tmp = '<'.$xmltag; if (is_array($data)) { foreach($data as $key => $value) $tmp .= ' '.$key.'="'.$value.'"'; } $tmp .= ">\r\n"; return $tmp; } if ($tagType == 2) return '</'.$xmltag.">\r\n"; } -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php