On Wed, Oct 01, 2003 at 01:12:16AM -0400, Gerard Samuel wrote: : : Got a problem with htmlspecialchars being too greedy, where : for example, it converts : &foo; : to : &foo; : : Yes it displays correctly in the browser for some content, but not all. : (an example is posted below) : So I came up with this example code, but not sure if there is an : easier/better way to get the correct end result. : If there is a better way, feel free to let me know. : Thanks : : Note: I dont read/speak chinese, so if its offensive please forgive me. : : ------ : <?php : : $foo = '中文 & http://www.foo.com/index.php?foo=1&bar=2';
The problem isn't with htmlspecialchars(). It doesn't know what parts of the string are HTML character references and which parts are not. But if you're willing to dig up the numeric character references for those specific Chinese characters, then split the string into the part that needs no translation and the part that needs it. That is: $foo1encoded = '中文' $foo2raw = ' & http://www.foo.com/index.php?foo=1&bar=2'; $foo = $foo1 . htmlspecialchars(foo2raw); -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php