`
化蝶自在飞
  • 浏览: 2333400 次
  • 性别: Icon_minigender_2
  • 来自: 武汉
社区版块
存档分类
最新评论

PHP上传文件名中有单引号解决方法,关闭PHP魔术引号(Magic Quote)的三种方法

    博客分类:
  • php
阅读更多
今天做上传音乐文件里面有英文的名称,英语经常就有单引号咯,这种引号就是魔术引号,有时候有些不方便,解决方法:

PHP的魔术引号给程序编写带来了一丁点方便,但却严重影响的程序的可移植性,在开启magic_quotes_gpc的环境下写的程序到没开启的环境下就有可能出现错误。所以通常情况下,我们会关闭magic_quotes_gpc以避免它带来的问题。

手册里介绍了三种方法,在些整理一下:

1 修改PHP配置文件php.ini

这种方法只适于自己有权管理服务器的情况下,如果用的虚拟空间,那就只能采用后两条方法。

在PHP配置文件php.ini中将magic_quotes_gpc、magic_quotes_runtime、magic_quotes_sybase全部设为off。如下所示:

; Magic quotes

;

; Magic quotes for incoming GET/POST/Cookie data.

magic_quotes_gpc = Off

; Magic quotes for runtime-generated data, e.g. data from SQL, from exec(), etc.

magic_quotes_runtime = Off

; Use Sybase-style magic quotes (escape ‘ with ” instead of \’).

magic_quotes_sybase = Off


2 利用.htaccess文件

该方法只在服务器支持htaccess的情况下,现在的服务器一般都会支持的

在程序目录下.htaccess文件中增加下面一句:

php_flag magic_quotes_gpc Off



3 在代码中屏蔽

该方法是移植性最强的,不用考虑服务器的配置,只要支持PHP就可以使用。

在所有PHP文件开始处增加下面代码

<?php
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);
$_REQUEST = array_map('stripslashes_deep', $_REQUEST);
}
?>
分享到:
评论

相关推荐

    python处理pandas读取文件名有中文报错问题解决方法

    针对这一问题,通常有两种解决方法。首先,如果该问题出现,我们可以尝试改变read_csv函数中的encoding参数,将它从默认的'utf-8'更改为'python'。这是因为'python'是一个在Python中预设的编码方案,它能够处理在...

    解决JMeter上传包含中文文件名乱码ApacheJMeter_http.jar

    总之,解决JMeter上传中文文件名乱码问题需要对JMeter的源代码有深入的理解,并能针对性地进行修改。通过确保正确处理文件名的编码,我们可以避免在测试过程中遇到的乱码困扰,从而提高测试的准确性和效率。

    关于附件上传文件名包含特殊字符的问题解决办法

    ### 关于附件上传文件名包含特殊字符的问题解决办法 #### 背景介绍 在互联网应用开发中,经常需要处理用户上传的附件。这些附件可能包括文档、图片、视频等多种类型。然而,在实际操作过程中,可能会遇到一个常见...

    php实现文件上传并返回获得上传后文件名

    在PHP中实现文件上传是一项常见的任务,这通常涉及到用户通过Web表单选择本地文件,然后这些文件被上传到服务器上。下面将详细讲解如何在PHP中实现文件上传,并获取上传后文件的名称。 首先,我们需要创建一个HTML...

    php上传文件中文文件名乱码的解决方法

    这是因为PHP在处理中文文件名上传时,会遇到编码不一致导致的乱码问题。文件名在服务器端解码时,如果编码类型与发送端不一致,就会出现乱码。 首先,我们得明白乱码产生的原因。当Windows系统环境下使用XAMPP或者...

    jsch文件名中文乱码解决办法

    感谢你的下载,文件说明如下: *jsch的源文件 *jsch的依赖包 *用jsch源文件及依赖包构建的项目,便于修改其源码* ...如果乱码问题依然没解决,这个类也许能帮你找到你需要更改的编码类型。然后修改那三处地方。

    jsch-0.1.53 使用sftp协议上传下载文件名中文乱码解决办法

    jsch-0.1.53 不支持修改编码格式,sftp.setFilenameEncoding("GBK");这样修改是不起作用的,所以必须修改源码。此处是修改源码后重新导出的jar包。

    成功解决 Android 下载中文文件名

    Android 中解决中文文件名下载乱码问题 在 Android 应用程序中,下载服务器上的中文文件名文件时,可能会出现乱码问题。本文将介绍如何解决 Android 下载中文文件名问题,确保文件名正确地下载到 Android 设备上。 ...

    php写的文件名修改器 自动修改文件夹下文件名 偶尔有用

    在IT行业中,PHP是一种广泛应用的服务器端脚本语言,尤其在网页开发中占据了重要的地位。本文将详细讨论如何使用PHP编写一个文件名修改器,自动批量修改文件夹下的文件名,以及这种工具在特定场景中的实用性。 首先...

    php 获取文件名后缀和创建文件方法

    在PHP开发中,处理文件是常见且重要的任务之一,包括获取文件名的后缀以及创建文件等操作。本文将深入探讨“php获取文件名后缀和创建文件方法”,旨在为开发者提供实用的代码示例与深入理解。 ### PHP获取文件名...

    PHP版SWFUpload源码(可获取上传文件名)

    这个特定版本的源码已经针对获取上传文件名进行了优化,解决了在表单提交时无法获取到文件名的问题。 首先,我们要理解SWFUpload的工作原理。它通过在HTML页面嵌入一个透明的Flash对象,用户在选择文件后,文件会被...

    文件下载response.setHeader()下载中文文件名乱码问题解决办法.pdf

    文件下载response.setHeader()下载中文文件名乱码问题解决办法 本文主要讨论了文件下载时response.setHeader()下载中文文件名乱码问题的解决办法。该问题是由于 HTTP 消息头中的 Content-Disposition 头字段不正确...

    解决浏览器请求响应中文文件名乱码问题的小工具包,解决中文文件名问题

    在IT行业中,尤其是在Web开发领域,处理中文文件名在浏览器请求响应中出现乱码的问题是一项常见的挑战。这个小工具包的出现,旨在提供一个解决方案,帮助开发者顺利地处理包含中文字符的文件名,确保在传输过程中...

    zip库(解决文件名中文乱码问题).zip

    "zip库(解决文件名中文乱码问题).zip" 提供了一个针对C++编程语言的解决方案,专门用于处理ZIP文件中中文文件名的乱码问题。这个问题在处理包含非ASCII字符(例如中文字符)的文件时经常出现,因为标准的ZIP库可能不...

    Linux下中文文件名乱码问题的详解 - CSDN博客1

    一种方法是在 `/usr/lib/locale` 目录下的默认配置中添加对中文的支持。通常,需要添加或启用以下三行,确保系统能够识别GBK和UTF-8编码: 1. `zh_CN.GBK GBK` 2. `zh_CN.GB18030 GB18030` 3. `zh_CN.UTF-8 UTF-8` ...

    Java中压缩与解压--中文文件名乱码解决办法

    ### Java中压缩与解压——中文文件名乱码解决办法 #### 一、问题背景及原理分析 在Java中处理文件的压缩与解压时,经常会遇到中文文件名出现乱码的问题。这个问题主要源于Java中默认使用的编码方式与实际文件名...

    uEditor上传图片并保存为原文件名

    【标题】"uEditor上传图片并保存为原文件名"涉及的是在ASP.NET环境中使用uEditor编辑器进行图片上传,并确保图片文件以上传时的原始文件名存储的过程。uEditor是一个流行的富文本编辑器,广泛应用于网站内容管理系统...

    文件名太长无法删除解决方法(工具法和手动法,亲测)

    ### 文件名太长无法删除的解决方案 在日常的计算机使用过程中,我们可能会遇到一些奇怪的问题,比如当尝试删除某个文件夹时,系统提示“文件名太长无法删除”或者“指定的文件名无效或太长”。这类问题通常发生在...

Global site tag (gtag.js) - Google Analytics