php post get 繁体、日文、韩文时 自动添加 反斜杠 问题

做些二次开发项目,数据库、文件编码没法大规模的修改,比如二次开发一个日文系统,编码是JA16SJIS,$_POST或$_GET的信息中如果“申請”,得到的信息就会变成“申\請”,多出一个反斜杠!

先贴出整理的解决办法,在有需要的地方或配置文件中加入如下代码

if (get_magic_quotes_gpc()) {
    function stripslashes_deep($value)
    {
        $value = is_array($value) ?
        array_map(‘stripslashes_deep‘, $value) :
        stripslashes($value);
        return $value;
    }
    $_POST = array_map(‘stripslashes_deep‘, $_POST);
    $_GET = array_map(‘stripslashes_deep‘, $_GET);
    $_COOKIE = array_map(‘stripslashes_deep‘, $_COOKIE);
}

网络整理相关:

查了一下,貌似可以设置php.ini中的magic_quotes_runtime

在php的配置文件中,有个布尔值的设置,就是magic_quotes_runtime,当它打开时,

php的大部分函数自动的给从外部引入的(包括数据库或者文件)数据中的溢出字符加上反

斜线。 当然如果重复给溢出字符加反斜线,那么字符串中就会有多个反斜线,所以这时

就要用set_magic_quotes_runtime()与get_magic_quotes_runtime()设置和检测php.ini

文件中magic_quotes_runtime状态。 为了使自己的程序不管服务器是什么设置都能正常

执行。可以在程序开始用get_magic_quotes_runtime检测该设置的状态决定是否要手工处理

,或者在开始(或不需要自动转义的时候)用set_magic_quotes_runtime(0)关掉该设置。

magic_quotes_gpc设置是否自动为GPC(get,post,cookie)传来的数据中的\‘\"\\加上反斜

线。可以用get_magic_quotes_gpc()检测系统设置。如果没有打开这项设置,可以使用

addslashes()函数添加,它的功能就是给数据库查询语句等的需要在某些字符前加上了反

斜线。这些字符是单引号(\‘)、双引号(\")、反斜线(\\)与 NUL(NULL 字符)。

一般用法如下;
if(!get_magic_quotes_gpc())
{
    addslashes($prot);
}

时间: 2024-10-08 15:15:54

php post get 繁体、日文、韩文时 自动添加 反斜杠 问题的相关文章

用Xshell连接Linux系统时输入反斜杠成W

用Xshell连接Linux系统时输入反斜杠成W只是xshell 设置问题 在FILE(文件)-->Properties(属性)里面>>外观如下标注位置配置改为: Courier New 即ok

问题处理:php json_decode函数处理的字符串中含有反斜杠“\”时,处理出错,返回的结果为NULL

php json_decode函数处理的字符串中含有反斜杠“\”时,处理出错,返回的结果为NULL. 处理方法,将字符串中的反斜杠1个替换成2个: /** * 一个反斜杠要替换成4个,否则json_decode不能解析 */ $json_str = str_replace('\\','\\\\',$json_str); $json = json_decode($json_str,true);

日文系统 反斜杠与日元符号

1.在日文系统中,键盘上的反斜杠(\)键输入的符号像日元符号(¥),但其实并不是日元符号. 2.在EASCII中,键盘上的反斜杠(\)键输入的符号编码是0x005C,而日元符号的编码是0x00A5. 3.输入日元符号:在Word中按住Alt键,输入165,松开Alt键,就输入了日元符号.可以拷贝到别处使用. 参考:Unicode字符百科

CLin 和 IDEA创建文件时自动添加作者和时间信息 + 多个.cpp文件在CLion下运行问题

CLin 和 IDEA创建文件时自动添加作者和时间信息 file -> setting -> Editor -> File and Code Templates -> 点击Includes下的"C File Header"或"File Header" 修改成: /*************************************************************************** 功能: Created by

Pycharm在创建py文件时,自动添加文件头注释

操作如上图所示,一般输入的注释为:

PHP 下载文件时自动添加bom头的方法

首先弄清楚,什么是bom头?在Windows下用记事本之类的程序将文本文件保存为UTF-8格式时,记事本会在文件头前面加上几个不可见的字符(EF BB BF),就是所谓的BOM(Byte order Mark).不仅限于 记事本保存的文件,只要在文件的开口包含了EF BB BF 几个不可见的字符(十六进制应该是是xEFxBBxBF,用二进制编辑文件可见).这像是一个约定俗成的东西,当系统看到这玩意的时候,就会觉得你这个文件是UTF-8编码的. 如果你的接口是UTF-8的,你需要强制下载一个文件,

困扰已久——DataGridView控件填充数据时自动添加列

    机房重构慢慢的走到了尽头,最近正在进行最后的润色中,今天解决了一个困扰许久但是非常简单的问题.我们在查询上机和充值记录时,用到了DataGridView控件.我们在VB版的机房收费系统中也用过类似的,不过显然没有.NET中如此灵活呀!     在填充数据时,我们分明已经写好了控件的列名,可是在填充数据时,会向DataGridView后面自动增加列,然后填充增加的列的数据,效果如下:    解决方法:        其中,DataPropertyName是绑定的数据源或者数据库中对应的字段

Pycharm 新建文件时 自动添加作者时间等信息

可用的变量有: $ {PROJECT_NAME} - 当前项目的名称. $ {NAME} - 在文件创建过程中在"新建文件"对话框中指定的新文件的名称. $ {USER} - 当前用户的登录名. $ {DATE} - 当前的系统日期. $ {TIME} - 当前系统时间. $ {YEAR} - 今年. $ {MONTH} - 当月. $ {DAY} - 当月的当天. $ {HOUR} - 目前的小时. $ {MINUTE} - 当前分钟. $ {PRODUCT_NAME} - 将在其中

vim文件时自动添加作者、时间、版权等信息

在工作中,搞运维的工程师往往会编写或完善自动化脚本时,都会手动添加表头注释,例如版权声明.作用.时间等信息提示,如果每次都手动编辑添加会大大消耗时间,所有我们可以利用快捷方法来节省时间,一种是手动在家目录下.vimrc或/etc/vimrc中添加配置:另一种是下载插件:在这里我给大家简单介绍一下第一种方法: 1.先找到需要添加配置文件的路径: 在家目录文件下查找.vimrc   (注意是隐藏文件,如果还是找不到,那么在/etc/vimrc) 2.vim /etc/vimrc 打开,在文件末尾添加