PHP5.4 htmlspecialchars转义中文字符串变空
查看PHP官方文档htmlspecialchars函数(2014-9-12日):
string htmlspecialchars ( string $string
[, int $flags
= ENT_COMPAT | ENT_HTML401 [, string $encoding
= ini_get("default_charset") [, bool $double_encode
= true ]]] )
。。。
其中有这么一句:
If omitted, the default value of the encoding
varies depending on the PHP version in use. In PHP 5.6 and later, the default_charset configuration option is used as the default value. PHP 5.4 and 5.5 will use UTF-8 as the default. Earlier versions of PHP use ISO-8859-1.
大概意思:假如没有指定$encoding 这个参数,默认的值会要看PHP版本,PHP5.6以及PHP5.6以后的版本,默认值就是php.ini中的default_charset的选项值,PHP5.4和PHP5.5的默认值是UTF-8.PHP5.3以及更早版本默认使用的是ISO-8859-1。(19素材)
所以有些程序在使用这个函数在不同的PHP版本环境中可能会有问题,比如htmlspecialchars转义中文字符串变空等,因此使用的时候必须要注意。比如dedecms5.7GBK就有这个问题,后台详细介绍文本框就会出现htmlspecialchars转义中文字符串变空。(19素材)
相关推荐
PHP5.4-htmlspecialchars转义中文字符串变空.doc
PHP 5.4虽然主要使用英文作为函数名,但它能很好地处理中文字符串,提供了丰富的字符串操作函数来处理中文字符,如`mb_string`系列函数、`iconv`、`preg_replace`等。以下是一些常用的中文函数: 1. **mb_string**...
`addslashes()`函数是PHP中用于手动转义字符串中特定字符的函数,它会在单引号(')、双引号(")、反斜线(\)和NUL字符前添加反斜线。例如,如果字符串是`abc'de"f`,`addslashes()`函数会将其转换为`abc\'de\"f`...
例如,如果你接收到一个可能被转义的字符串 `$str`,可以使用 `stripcslashes($str)` 来移除转义的字符。 了解了如何防止转义后,我们来看看PHP中单引号和双引号的主要区别: 1. **变量插值**:双引号包围的字符串...
1. Addslashes 函数:这是一个用于转义字符串的函数,它可以将字符串中的特殊字符转义为可读的转义序列,例如单引号(')、双引号(")、反斜杠(\)和空字符(NULL)。它在数据库管理系统(DBMS)没有提供转义函数时被使用...
- `$string`:必需参数,需要转义的字符串。 - `$flags`:可选参数,用于控制转义的方式,如 `ENT_COMPAT`(仅转义双引号)、`ENT_QUOTES`(转义双引号和单引号)或 `ENT_NOQUOTES`(不转义任何引号)。此外还有其他...
在处理已经转义的数据时,使用stripslashes()可以还原原始字符串。 5. **strip_tags()**:此函数用于从字符串中删除HTML、XML和PHP标签,以获取纯文本内容。可以设置允许的标签,但无法改变对HTML注释的处理。 6. ...
配置文件中设置的指令,当其开启(设置为`On`)时,PHP会自动在所有通过GET、POST和COOKIE传递的字符串中添加反斜杠,用以转义特定字符,包括单引号('),双引号("),反斜线(\)以及空字符(NUL)。这样做是为了防止SQL...
**攻击原理**:eval函数可以执行字符串形式的PHP代码。攻击者可能通过构造特殊格式的数据,使eval函数执行恶意代码。 **防御措施**: - 尽量避免使用eval函数。 - 对所有传入eval函数的字符串进行严格的过滤和验证...
SQL注入的原理主要在于,攻击者可以通过输入包含特殊字符或结构的字符串,使应用程序构建出错误的SQL查询。例如,上述描述中提到的不安全的登录代码段,当用户输入`username = "***" and password = "***" or 1 = "1...