$payload;
if ($this->debug > 1) {
- print "<PRE>\n---SENDING---\n" . htmlentities($op) . "\n---END---\n</PRE>";
- // let the client see this now in case http times out...
- flush();
+ $this->debugMessage("---SENDING---\n$op\n---END---");
}
if ($timeout > 0) {
}
if ($this->debug > 1) {
- print "<PRE>\n---SENDING---\n" . htmlentities($payload) . "\n---END---\n</PRE>";
+ $this->debugMessage("---SENDING---\n$payload\n---END---");
// let the client see this now in case http times out...
flush();
}
$result = curl_exec($curl);
if ($this->debug > 1) {
- print "<PRE>\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</PRE>";
+ $message .= "---END---";
+ $this->debugMessage($message);
}
if (!$result) {
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 "<PRE>\n".htmlentities($message)."\n</PRE>";
+ }
+ else {
+ print "\n$message\n";
+ }
+ // let the client see this now in case http times out...
+ flush();
+ }
}
if ($this->httpResponse['headers']['content-encoding'] == 'deflate' && $degzdata = @gzuncompress($data)) {
$data = $degzdata;
if ($this->debug) {
- print "<PRE>---INFLATED RESPONSE---[" . strlen($data) . " chars]---\n" . htmlentities($data) . "\n---END---</PRE>";
+ $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 "<PRE>---INFLATED RESPONSE---[" . strlen($data) . " chars]---\n" . htmlentities($data) . "\n---END---</PRE>";
+ $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');
{
if ($this->debug) {
// by maHo, replaced htmlspecialchars with htmlentities
- print "<PRE>---GOT---\n" . htmlentities($data) . "\n---END---\n</PRE>";
+ $this->debugMessage("---GOT---\n$data\n---END---");
}
$this->httpResponse = array();
$start += strlen('<!-- SERVER DEBUG INFO (BASE64 ENCODED):');
$end = strpos($data, '-->', $start);
$comments = substr($data, $start, $end - $start);
- print "<PRE>---SERVER DEBUG INFO (DECODED) ---\n\t" . htmlentities(str_replace("\n", "\n\t", base64_decode($comments))) . "\n---END---\n</PRE>";
+ $this->debugMessage("---SERVER DEBUG INFO (DECODED) ---\n\t" . str_replace("\n", "\n\t", base64_decode($comments))) . "\n---END---\n</PRE>";
}
}
PhpXmlRpc::$xmlrpcstr['invalid_return']);
} else {
if ($this->debug) {
- print "<PRE>---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---</PRE>";
+ $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.
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 "<PRE>\n".htmlentities($message)."\n</PRE>";
+ else
+ print "<PRE>\n".htmlspecialchars($message)."\n</PRE>";
+ }
+ else {
+ print "\n$message\n";
+ }
+ // let the client see this now in case http times out...
+ flush();
+ }
}