Php 反向mysql\u真实\u转义\u字符串

Php 反向mysql\u真实\u转义\u字符串,php,mysql,Php,Mysql,我有一段很大的数据,可能包含引号和双引号 我正在使用mysql\u real\u escape\u string()安全地存储它 当我把它拉出来查看时,所有的引号都被转义了。我尝试使用str\u replace删除所有引号,但这将\r\n变成rn:( 我如何将其反转,使数据按输入的方式返回?是否使用神奇的引号 注意:如果启用了magic_quotes_gpc, 首先将stripslashes()应用于 在数据上使用此函数[mysql\u real\u escape\u string] 已经逃脱的

我有一段很大的数据,可能包含引号和双引号

我正在使用
mysql\u real\u escape\u string()
安全地存储它

当我把它拉出来查看时,所有的引号都被转义了。我尝试使用
str\u replace
删除所有引号,但这将
\r\n
变成
rn
:(


我如何将其反转,使数据按输入的方式返回?

是否使用神奇的引号

注意:如果启用了magic_quotes_gpc, 首先将stripslashes()应用于 在数据上使用此函数[mysql\u real\u escape\u string] 已经逃脱的威尔 将数据转义两次

谁说的

$keyword = "TEST'TEST";

$result1 = mysql_real_escape_string($keyword);
echo $result1 --> TEST\'TEST

$result2 = nl2br(stripslashes($result));
echo $result2 --> TEST'TEST

如果由于数据的格式化方式,您确实想扭转这种局面,我提出了一种解决方案:

function mysql_unreal_escape_string($string) {
    $characters = array('x00', 'n', 'r', '\\', '\'', '"','x1a');
    $o_chars = array("\x00", "\n", "\r", "\\", "'", "\"", "\x1a");
    for ($i = 0; $i < strlen($string); $i++) {
        if (substr($string, $i, 1) == '\\') {
            foreach ($characters as $index => $char) {
                if ($i <= strlen($string) - strlen($char) && substr($string, $i + 1, strlen($char)) == $char) {
                    $string = substr_replace($string, $o_chars[$index], $i, strlen($char) + 1);
                    break;
                }
            }
        }
    }
    return $string;
}
函数mysql\u unreal\u escape\u string($string){
$characters=数组('x00'、'n'、'r'、'\\'、'\''、'x1a');
$o_chars=array(“\x00”、“\n”、“\r”、“\\”、“'、“\”“、“\x1a”);
对于($i=0;$i$char的字符){

如果($i在转义字符串之后,您的字符串可以变成“TEST\r\n\TEST”,那么nl2br将不起作用。所以我做了如下操作:stripslashes(str_replace('\r\n','
',nl2br(“TEST\r\n\TEST”))有用的问题。