/** * Mask certain sensitive data from occuring in output/logs * * @param string $message * @returns string */ public static function mask($message) { $masks = array('<SessionTicket>', '<ConnectionTicket>', '<CreditCardNumber>', '<CardSecurityCode>', '<AppID>', '<strPassword>'); foreach ($masks as $key) { if ($key[0] == '<') { // It's an XML tag $contents = QuickBooks_Utilities::_extractTagContents(trim($key, '<> '), $message); $masked = str_repeat('x', min(strlen($contents), 12)) . substr($contents, 12); $message = str_replace($key . $contents . '</' . trim($key, '<> ') . '>', $key . $masked . '</' . trim($key, '<> ') . '>', $message); } } return $message; }