php utf8编码上传中文文件名出现乱码
代码如下 | 复制代码 |
<?php if(is_uploaded_file($_FILES['file']['tmp_name'])){ //iconv函数解决上传文件中文名乱码的问题,但是不提倡文件名是中文的,特别是unix/linux环境下 ,当你要输出的时候,又要给变回来,iconv('gb2312',UTF-8',$upload) if(!move_uploaded_file($_FILES['file']['tmp_name'],iconv('UTF-8','gb2312',$upload))){ echo 'failed'; }else{ } } } /******关于iconv函数的应用:string iconv ( string in_charset, string out_charset, string str ) * out_charset:输出的文件的格式 * str:文件路径 *****/ |
问题:echo date('o-m-j H:i');
代码如下 | 复制代码 |
〈?php |
输出当前时间:2008-10-12 02:32:17
怪了,实际时间是:2008-10-12 10:32:17
输出结果与本地时间相差8小时。
原因:时区未正确设置。
两种解决方法:
1.加入date_default_timezone_set('Asia/Shanghai');
2. 修改php.ini
[Date]
; Defines the default timezone used by the date functions
date.timezone = PRC 注:PRC为中化人民共和国
如果没有修改php.ini的权限,那么应该在调用date()方法之前加上
代码如下 | 复制代码 |
date_default_timezone_set(‘PRC’); |
最简的就是利用
例子 1
代码如下 | 复制代码 |
<?php world! 例子 2 |
英文的话没有问题,但是中文就出问题了,下面我们使用mb_substr函数处理。
/**
*—————————————————————————————————————–
*PHP有一个mbstring扩展库可以用(有朋友面试PHP的时候还被问到过这个问题哦),但是 *
一般的服务器都没打开php_mbstring.dll,需要在
*php.ini里把php_mbstring.dll打开,如果没有权限的话就只有联系你的ISP了。
*因为mb_string的效率高一些,所以我们先检查一下mb_string是否可以用:
*—————————————————————————————————————–
*/
代码如下 | 复制代码 |
if(function_exists(‘mb_string’)) |
首先定义自己的函数
代码如下 | 复制代码 |
<?php
|
还有一个问题要注意,使用这种方法的时候,你的<head>标签对里的charset只有设成中文的编码才可以,如GBK,GB2312。
下面自己常用的一个中英文字符截取函数
自定义截取中文字符串函数,基本上就是仿照mb_substr写个函数,直接调用罢了,以下为我找到的代码,其实很简单
代码如下 | 复制代码 |
<?php |
例
preg_match_all正则匹配字符串所有连接地址
代码如下 | 复制代码 |
$str ='<a href="http://www.a.com/2010/11-15/5.html">4</a> $ymd=date("y")."/".date("m-d"); |
但是用preg_match正则提取目标内容,死活有问题,
代码测得死去活来。
后来发现“pcre.backtrack_limit ”的值默认只设了100000。
解决办法:
代码如下 | 复制代码 |
|
注:这个参数在php 5.2.0版本之后可用。
另外说说关于:pcre.recursion_limit
pcre.recursion_limit是PCRE的递归限制,这个项如果设很大的值,会消耗所有进程的可用堆栈,最后导致PHP崩溃。
也可以通过修改配置来限制
代码如下 | 复制代码 |
ini_set(‘pcre.recursion_limit’, 99999); |
实际项目应用中,最好也对内存进行限定设置:
代码如下 | 复制代码 |
ini_set(‘memory_limit’, ’64M’); |
有数据库服务器管理权限
找到php.ini 配置文件中的以下三个地方,upload_max_filesize, memory_limit 和post_max_size 修改大小即可。
利用命令来解决步骤如下:
第一,打开 CMD。开始 -> 运行 -> CMD。
第二,进入 mysql 目录。
代码如下 | 复制代码 |
d: |
第三,启动 mysql,输入用户名及密码。
代码如下 | 复制代码 |
mysql -u wper -p |
第四,选择对应的数据库名。
mysql> use wp
第五,设置 utf8 编码。
代码如下 | 复制代码 |
mysql> set names utf8; |
第六,选择 sql 数据库文件路径并导入。
代码如下 | 复制代码 |
mysql>source d:wangeim.sql |
方法三,利用一些专用的数据备份软件,这样他们可以设置导出数据的大小这样就可以解决这个问题了。
相关文章
- 这篇文章主要介绍了cmd下过滤文件名称的两种方法,需要的朋友可以参考下...2020-06-30
使用GetInvalidFileNameChars生成文件名
这篇文章主要介绍了一个很实用的函数Path.GetInvalidFileNameChars(),他可以很方便的生成一个有效的文件名称...2020-06-25- 这篇文章主要介绍了C#编程实现获取文件夹中所有文件的文件名,可实现获取特定目录下制定类型文件名称的功能,涉及C#针对文件与目录的遍历、查询等操作相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
- 这篇文章主要介绍了C#中文件名或文件路径非法字符判断方法,本文主要使用了内置的GetInvalidFileNameChars方法实现非法字符判断,需要的朋友可以参考下...2020-06-25
- 这篇文章主要介绍了js获取url页面id,也就是最后的数字文件名,有时候我们需要判断当前页面的id,又不用重新生成页面直接用js获取最后的数字.htm即可...2020-09-25
- 这篇文章主要介绍了Python通过fnmatch模块实现文件名匹配,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-10-01
- 发生场合:当左边对象是浮动的,右边对象采用外补丁的左边距来定位,则右边对象内的文本会离左边有3px的空白误差。 没加修正: 运行代码框 代码如下 复制代...2017-07-06
- 下面我来总结一下php utf8编码上传中文文件名出现乱码解决办法,有碰这类问题的朋友可参考参考。 代码如下 复制代码 <?php if(isset($_FIL...2016-11-25
为什么出现“APACHE.EXE: cannot determine
由于Windows版本的Apache默认情况下不指定ServerName,所以运行时会出错。 解决的办法是修改Apache安装目录下的conf目录下的httpd.conf: - 搜索ServerName - 去掉前面...2016-11-25- 这篇文章主要介绍了PHP获取当前执行php文件名的代码,需要的朋友可以参考下...2017-03-12
- 在 Windows 有一些字符是不能作为文件名,尝试重命名一个文件,输入/ 就可以看到windows 提示的不能作为文件名的字符,那么具体是包括哪些符号不能作为文件名呢?下面小编给大家介绍下...2020-06-25
CentOS 64 编译PHP出现 error: Cannot find ldap libraries in /usr/lib
CentOS 64 编译PHP出现 error: Cannot find ldap libraries in /usr/lib 有需要的朋友可参考参考。 在CentOS 64位下编译安装PHP5.4.8。cp -frp /usr/lib64/libpn...2016-11-25- 可能会有不少朋友碰到一些问题就是上传文件时如果是英文倒好原文名不会有问题,如果是中文可能就会出现乱码了,今天我来给大家总结一下导致乱码php上传文件中文文件名乱...2016-11-25
- 使用fck的朋友可能会碰这样一个情况就是如果上你的文件名为英文字母是没有任何问题,如果上传的是中文汉字就会出现中文名乱码了,下面我来给大家分析与介绍解决方法。...2016-11-25
- fopen函数是用来创建或访问文件的但如果是中文处理就不是那么了经常会碰到中文出错问题了,对于这个问题我们来看看处理办法。 PHP使用fopen()、filesize()等PHP...2016-11-25
- 提供二款利用遍历批量修改文件的文件名的php代码,有需要的朋友可以参考一下。 实例一 代码如下 复制代码 <?php //利用PHP目录和文件函数遍...2016-11-25
在FireFox/IE下Response中文文件名乱码问题解决方案
只是针对没有空格和IE的情况下使用Response.AppendHeader()如果想在FireFox下输出没有编码的文件,并且IE下输出的文件名中空格不为+号,就要多一次判断了,接下来将详细介绍下感兴趣的朋友可以了解下,或许对你有所帮助...2021-09-22- 这篇文章主要介绍了C#中的文件路径获取函数和文件名字获取函数小结,本文讲解了获取绝对文件路径、获取文件名字、获得包含 path 目录信等内容,需要的朋友可以参考下...2020-06-25
- 帝国CMS6.6/7.0都有效。第一步:找到:/e/class/connect.php查找:$r[filetype]=GetFiletype($file_name);在下面加入:$filename2=str_replace($r[filetype], '', $file_na...2015-12-30
- 在php文件上传时我们需要获取文件名后缀之后进行简单文件类型判断了,而在php中文件名后缀获取方法很简单并且有很多种,下面我来总结一下。 1.basename()-返回路径的...2016-11-25