diff options
-rw-r--r-- | lib/SqlFormatter.php | 6 | ||||
-rw-r--r-- | tests/SqlFormatterTest.php | 15 |
2 files changed, 20 insertions, 1 deletions
diff --git a/lib/SqlFormatter.php b/lib/SqlFormatter.php index 99f0d56..f6556c9 100644 --- a/lib/SqlFormatter.php +++ b/lib/SqlFormatter.php @@ -864,7 +864,11 @@ class SqlFormatter if (self::is_cli()) { $token = $token[self::TOKEN_VALUE]; } else { - $token = @htmlentities($token[self::TOKEN_VALUE],ENT_COMPAT,'UTF-8'); + if (defined('ENT_IGNORE')) { + $token = htmlentities($token[self::TOKEN_VALUE],ENT_COMPAT | ENT_IGNORE ,'UTF-8'); + } else { + $token = htmlentities($token[self::TOKEN_VALUE],ENT_COMPAT,'UTF-8'); + } } if ($type===self::TOKEN_TYPE_BOUNDARY) { diff --git a/tests/SqlFormatterTest.php b/tests/SqlFormatterTest.php index ca535cf..a7951e8 100644 --- a/tests/SqlFormatterTest.php +++ b/tests/SqlFormatterTest.php @@ -25,6 +25,21 @@ class SqlFormatterTest extends PHPUnit_Framework_TestCase { function testHighlight($sql, $html) { $this->assertEquals(trim($html), trim(SqlFormatter::highlight($sql))); } + + function testHighlightBinary() { + $sql = 'SELECT "' . pack('H*', "ed180e98a47a45b3bdd304b798bc5797") . '" AS BINARY'; + + if (defined('ENT_IGNORE')) { + // this is what gets written as string + $binaryData = '"' . pack('H*', "180e7a450457") . '"'; + } else { + $binaryData = ''; + } + + $html = '<pre style="color: black; background-color: white;"><span style="font-weight:bold;">SELECT</span> <span style="color: blue;">' . $binaryData . '</span> <span style="font-weight:bold;">AS</span> <span style="color: #333;">BINARY</span></pre>'; + + $this->assertEquals(trim($html), trim(SqlFormatter::highlight($sql))); + } /** * @dataProvider highlightCliData */ |