[commit] r12161 - freeswitch/trunk/scripts/contrib/intralanman/PHP/fs_curl
Author: intralanman Date: Wed Feb 18 23:34:35 2009 New Revision: 12161 Log: added fs_curl_debug option which will send XML with no whitespace if not passed (might save a little in transfer bw and time in large XMLs) Modified: freeswitch/trunk/scripts/contrib/intralanman/PHP/fs_curl/fs_curl.php Modified: freeswitch/trunk/scripts/contrib/intralanman/PHP/fs_curl/fs_curl.php ============================================================================== --- freeswitch/trunk/scripts/contrib/intralanman/PHP/fs_curl/fs_curl.php (original) +++ freeswitch/trunk/scripts/contrib/intralanman/PHP/fs_curl/fs_curl.php Wed Feb 18 23:34:35 2009 @@ -51,10 +51,10 @@ * @return void */ public function fs_curl() { - openlog('fs_curl', LOG_NDELAY | LOG_PID, LOG_USER); + openlog('fs_curl', LOG_NDELAY | LOG_PID, LOG_USER); header('Content-Type: text/xml'); - $this -> open_xml(); $this -> generate_request_array(); + $this -> open_xml(); $inc = array('required'=>'libs/fs_pdo.php'); // include an external file. i.e. 'required'=>'important_file.php' $this -> include_files($inc); $this -> connect_db(DEFAULT_DSN, DEFAULT_DSN_LOGIN, DEFAULT_DSN_PASSWORD ); @@ -69,13 +69,13 @@ */ public function connect_db($dsn, $login, $password) { try { - $this -> db = new FS_PDO($dsn, $login, $password); - } catch(Exception $e) { - $this -> comment($e->getMessage()); - $this -> file_not_found(); //program terminates in function file_not_found() - } + $this -> db = new FS_PDO($dsn, $login, $password); + } catch(Exception $e) { + $this -> comment($e->getMessage()); + $this -> file_not_found(); //program terminates in function file_not_found() + } } - + /** * Method to add comments to XML * Adds a comment to be displayed in the final XML @@ -107,8 +107,14 @@ private function open_xml() { $this -> xmlw = new XMLWriter(); $this -> xmlw -> openMemory(); - $this -> xmlw -> setIndent(true); - $this -> xmlw -> setIndentString(' '); + if (array_key_exists('fs_curl_debug', $this -> request) + && $this -> request['fs_curl_debug'] == true) { + $this -> xmlw -> setIndent(true); + $this -> xmlw -> setIndentString(' '); + } else { + $this -> xmlw -> setIndent(false); + $this -> xmlw -> setIndentString(' '); + } $this -> xmlw -> startDocument('1.0', 'UTF-8', 'no'); //set the freeswitch document type $this -> xmlw -> startElement('document'); @@ -138,8 +144,10 @@ $not_found -> writeAttribute('status', 'not found'); $not_found -> endElement(); $not_found -> endElement(); - $not_found -> endElement(); + /* we put the comments inside the root element so we don't + * get complaints about markup outside of it */ $this -> comments2xml($not_found, $this -> comments); + $not_found -> endElement(); echo $not_found -> outputMemory(); exit(); } @@ -181,25 +189,22 @@ * @return void */ public function output_xml() { - $this->comment( + $this->comment( sprintf('Total # of Queries Run: %d', $this->db->counter) ); $this -> comment(sprintf("Estimated Execution Time Is: %s" , (ereg_replace( '^0\.([0-9]+) ([0-9]+)$', '\2.\1', microtime()) - START_TIME) - )); - + )); + + $this -> comments2xml($this -> xmlw, $this -> comments); $this -> close_xml(); - $comment_count = count($this -> comments); - for ($i = 0; $i < $comment_count; $i++) { - $this -> xmlw -> writeComment($this -> comments[$i]); - } $xml_out = $this -> xmlw -> outputMemory(); $this -> debug('---- Start XML Output ----'); $this -> debug(explode("\n", $xml_out)); $this -> debug('---- End XML Output ----'); echo $xml_out; - exit(); + exit(); } /** @@ -269,20 +274,20 @@ switch ($no) { case E_USER_NOTICE: - case E_NOTICE: - break; - case E_USER_WARNING: - case E_WARNING: - if (defined('RETURN_ON_WARN') && RETURN_ON_WARN == true) { + case E_NOTICE: break; - } - case E_ERROR: - case E_USER_ERROR: - default: - $this -> file_not_found(); - } - return true; - } + case E_USER_WARNING: + case E_WARNING: + if (defined('RETURN_ON_WARN') && RETURN_ON_WARN == true) { + break; + } + case E_ERROR: + case E_USER_ERROR: + default: + $this -> file_not_found(); + } + return true; + } /** * Function to print out debugging info @@ -292,41 +297,41 @@ * @param integer $debug_level debug if $debug_level <= FS_CURL_DEBUG * @param integer $spaces */ - public function debug($input, $debug_level=0, $spaces=0) { - if (defined('FS_CURL_DEBUG') && $debug_level <= FS_CURL_DEBUG ) { - if (is_array($input)) { - $this -> debug('Array (', $debug_level, $spaces); - foreach ($input as $key=>$val) { - if (is_array($val) || is_object($val)) { - $this -> debug("[$key] => $val", $debug_level, $spaces+4); - $this -> debug('(', $debug_level, $spaces + 8); - $this -> debug($val, $debug_level, $spaces + 8); - } else { - $this -> debug("[$key] => '$val'", $debug_level, $spaces + 4); - } - } - $this -> debug(")", $debug_level, $spaces); - } else { - $debug_str = sprintf("%s%s" - , str_repeat(' ', $spaces), $input - ); - switch (FS_DEBUG_TYPE) { - case 0: - syslog(LOG_NOTICE, $debug_str); - break; - case 1: - $this -> comment($debug_str); - break; - case 2: - $ptr = fopen(FS_DEBUG_FILE, 'a'); - fputs($ptr, "$debug_str\r\n"); - fclose($ptr); - break; - default: - return; - } - } - } - } -} + public function debug($input, $debug_level=0, $spaces=0) { + if (defined('FS_CURL_DEBUG') && $debug_level <= FS_CURL_DEBUG ) { + if (is_array($input)) { + $this -> debug('Array (', $debug_level, $spaces); + foreach ($input as $key=>$val) { + if (is_array($val) || is_object($val)) { + $this -> debug("[$key] => $val", $debug_level, $spaces+4); + $this -> debug('(', $debug_level, $spaces + 8); + $this -> debug($val, $debug_level, $spaces + 8); + } else { + $this -> debug("[$key] => '$val'", $debug_level, $spaces + 4); + } + } + $this -> debug(")", $debug_level, $spaces); + } else { + $debug_str = sprintf("%s%s" + , str_repeat(' ', $spaces), $input + ); + switch (FS_DEBUG_TYPE) { + case 0: + syslog(LOG_NOTICE, $debug_str); + break; + case 1: + $this -> comment($debug_str); + break; + case 2: + $ptr = fopen(FS_DEBUG_FILE, 'a'); + fputs($ptr, "$debug_str\r\n"); + fclose($ptr); + break; + default: + return; + } + } + } + } + }
participants (1)
-
FreeSWITCH SVN