From: gggeek Date: Fri, 20 Mar 2015 09:59:40 +0000 (+0000) Subject: Improve debug messages when running on command line X-Git-Tag: 4.0.0-alpha^2~159 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=a124a39067ed378b96ad838200c734ddb5171d08;p=plcapi.git Improve debug messages when running on command line --- diff --git a/src/Client.php b/src/Client.php index 4af4dcbf..6ec59eb7 100644 --- a/src/Client.php +++ b/src/Client.php @@ -516,9 +516,7 @@ class Client $payload; if ($this->debug > 1) { - print "
\n---SENDING---\n" . htmlentities($op) . "\n---END---\n
"; - // let the client see this now in case http times out... - flush(); + $this->debugMessage("---SENDING---\n$op\n---END---"); } if ($timeout > 0) { @@ -634,7 +632,7 @@ class Client } if ($this->debug > 1) { - print "
\n---SENDING---\n" . htmlentities($payload) . "\n---END---\n
"; + $this->debugMessage("---SENDING---\n$payload\n---END---"); // let the client see this now in case http times out... flush(); } @@ -766,15 +764,15 @@ class Client $result = curl_exec($curl); if ($this->debug > 1) { - print "
\n---CURL INFO---\n";
+            $message = "---CURL INFO---\n";
             foreach (curl_getinfo($curl) as $name => $val) {
                 if (is_array($val)) {
                     $val = implode("\n", $val);
                 }
-                print $name . ': ' . htmlentities($val) . "\n";
+                $message .= $name . ': ' . $val . "\n";
             }
-
-            print "---END---\n
"; + $message .= "---END---"; + $this->debugMessage($message); } if (!$result) { @@ -992,4 +990,21 @@ class Client return $response; } } + + /** + * Echoes a debug message, taking care of escaping it when not in console mode + * + * @param string $message + */ + protected function debugMessage($message) + { + if (PHP_SAPI != 'cli') { + print "
\n".htmlentities($message)."\n
"; + } + else { + print "\n$message\n"; + } + // let the client see this now in case http times out... + flush(); + } } diff --git a/src/Request.php b/src/Request.php index 7004b545..a466a508 100644 --- a/src/Request.php +++ b/src/Request.php @@ -333,12 +333,12 @@ class Request if ($this->httpResponse['headers']['content-encoding'] == 'deflate' && $degzdata = @gzuncompress($data)) { $data = $degzdata; if ($this->debug) { - print "
---INFLATED RESPONSE---[" . strlen($data) . " chars]---\n" . htmlentities($data) . "\n---END---
"; + $this->debugMessage("---INFLATED RESPONSE---[" . strlen($data) . " chars]---\n$data\n---END---"); } } elseif ($this->httpResponse['headers']['content-encoding'] == 'gzip' && $degzdata = @gzinflate(substr($data, 10))) { $data = $degzdata; if ($this->debug) { - print "
---INFLATED RESPONSE---[" . strlen($data) . " chars]---\n" . htmlentities($data) . "\n---END---
"; + $this->debugMessage("---INFLATED RESPONSE---[" . strlen($data) . " chars]---\n$data\n---END---"); } } else { error_log('XML-RPC: ' . __METHOD__ . ': errors occurred when trying to decode the deflated data received from server'); @@ -372,7 +372,7 @@ class Request { if ($this->debug) { // by maHo, replaced htmlspecialchars with htmlentities - print "
---GOT---\n" . htmlentities($data) . "\n---END---\n
"; + $this->debugMessage("---GOT---\n$data\n---END---"); } $this->httpResponse = array(); @@ -405,7 +405,7 @@ class Request $start += strlen('', $start); $comments = substr($data, $start, $end - $start); - print "
---SERVER DEBUG INFO (DECODED) ---\n\t" . htmlentities(str_replace("\n", "\n\t", base64_decode($comments))) . "\n---END---\n
"; + $this->debugMessage("---SERVER DEBUG INFO (DECODED) ---\n\t" . str_replace("\n", "\n\t", base64_decode($comments))) . "\n---END---\n"; } } @@ -512,11 +512,9 @@ class Request PhpXmlRpc::$xmlrpcstr['invalid_return']); } else { if ($this->debug) { - print "
---PARSED---\n";
-                // somehow htmlentities chokes on var_export, and some full html string...
-                //print htmlentitites(var_export($xmlRpcParser->_xh['value'], true));
-                print htmlspecialchars(var_export($xmlRpcParser->_xh['value'], true));
-                print "\n---END---
"; + $this->debugMessage( + "---PARSED---\n".var_export($xmlRpcParser->_xh['value'], true)."\n---END---", false + ); } // note that using =& will raise an error if $xmlRpcParser->_xh['st'] does not generate an object. @@ -552,4 +550,24 @@ class Request return $r; } + + /** + * Echoes a debug message, taking care of escaping it when not in console mode + * + * @param string $message + */ + protected function debugMessage($message, $encodeEntities = true) + { + if (PHP_SAPI != 'cli') { + if ($encodeEntities) + print "
\n".htmlentities($message)."\n
"; + else + print "
\n".htmlspecialchars($message)."\n
"; + } + else { + print "\n$message\n"; + } + // let the client see this now in case http times out... + flush(); + } }