PHP中file_exists函数不支持中文名的解决方法
一般来说PHP中常使用file_exists()判断某个文件或者文件夹是否存在,如果存在则返回true,否则返回false。但是该函数在网页使用UTF8编码的情况下,对于中文的文件名或者文件夹名不能返回正确值,始终返回false。经测试之后得出解决方法,分析造成这一情况的原因应该是编码不同而导致的PHP不能正确判断。
下面这段代码是不能够返回正确值的代码,无论文件是否在都返回不在:
<?php; $file="/attachment/21/0/中文.rar"; $newfile = dirname(__FILE__).$file; echo file_exists($newfile); ?>
经过测试之后,增加了一句将UTF8编码转换为GB2312编码的语句,就可以正确判断了:
<?php $file="/attachment/21/0/中文.rar"; $newfile = dirname(__FILE__).$file; $file=iconv('UTF-8','GB2312',$file); echo file_exists($newfile); ?>
相关推荐
-
解析php file_exists无效的解决办法
方法1 :据官方手册上描述若php教程的safe mode相关的设置过于苛刻,就会出现这样的情形:尽管文件真实存在也被误报,认为文件不存在. 由于服务器端的php.ini我们无法操纵,当用ini_set()也关闭不了safe mode模式,我们只有退而求其次,找一个更可靠.安全的检测方法来检测文件是否存在.我们可以借助 $_server['document_root'] 来加以实现.$_server['document_root'] 返回的是网站的根目录,该目录的最后一个子目录不包含目录标志符号
-
PHP中判断文件存在使用is_file还是file_exists?
判断文件存在用is_file还是file_exists? 在写程序时发现在判断文件是否存在时,有两种写法,有的人用了is_file,有的人用了file_exists,用哪个更好或者说更合适呢? 看了这篇PHP中file_exists与is_file,is_dir的区别的说法基本明白,PHP的 file_exists = is_dir + is_file. 写程序验证一下: 分别执行1000次,记录所需时间. 文件存在(当前目录) 复制代码 代码如下: is_file:0.4570ms file_
-
php file_exists 检查文件或目录是否存在的函数
说明 bool file_exists ( string $filename ) 如果由 filename 指定的文件或目录存在则返回 TRUE,否则返回 FALSE. 其实于php教程 file_exists 函数与 file_exists语法我们早就讲过了,下面我们来看看一下关于它的使用方法与实例吧 路径的文件或目录. 在Windows上,使用/ /计算机名/共享/文件名或 计算机名共享文件名,以检查网络共享文件. 在 Windows 中要用 //computername/share/fil
-
php中file_exists函数使用详解
说明: bool file_exists ( string $filename ) 如果由 filename 指定的文件或目录存在则返回 TRUE,否则返回 FALSE. 在Windows上,使用/ /计算机名/共享/文件名或 计算机名共享文件名,以检查网络共享文件. 在 Windows 中要用 //computername/share/filename 或者 \\computername\share\filename 来检查网络中的共享文件. 实例一 <?php $filename = '/j
-
PHP中file_exists使用中遇到的问题小结
介绍 我发现了一个问题,今天与大家分享.我把整个过程描述一下. 问题:公司有个框架是基于smarty写的,我负责php的升级,维护人员把新环境布上来之后,测试人员找我提出经常报错(错误:提示找不到文件的). 我追踪了一下代码,原来是smarty的这个地方报的错误. 错误:这里报出文件不存在. 思考过程: 1.我原以为是程序里没有这个文件呢,结果发现,文件是有的,那是怎么回事? 2.后来我再猜是不是php内核有问题,我把php的相关内核文件看了一遍,也没发现问题.结果我就把整个过程跟项目经理说去了
-
PHP中is_file不能替代file_exists的理由
我们可以使用下面的代码测试一下: 复制代码 代码如下: <?php $filename = 'test.txt'; if (is_file($filename)) { echo "$filename exists!\n"; } else { echo "$filename no exists!\n"; } sleep(10); if (is_file($filen
-
PHP中file_exists()判断中文文件名无效的解决方法
本文实例讲述了PHP中file_exists()判断中文文件名无效的解决方法.分享给大家供大家参考.具体方法如下: php中判断文件是否存在我们会使用file_exists函数或is_file函数,但在使用file_exists时如果你文件名或路径是中文在uft8编码文档时是无效.本文就来解决此问题,下面我们一起来看看. 定义和用法: file_exists() 函数检查文件或目录是否存在. 如果指定的文件或目录存在则返回 true,否则返回 false. 例子1 复制代码 代码如下: <?ph
-
PHP中file_exists与is_file,is_dir的区别介绍
很显然file_exists是受了asp的影响,因为asp不但有fileExists还有folderExists,driverExists,那么PHP中file_exists是什么意思呢? PHP的 file_exists = is_dir + is_file 它既可以判断文件是否存在,又可以判断目录是否存在.但这样一个全面的函数执行效率非常低,就像asp中request不指定是form,还是get,cookies,所以结论是: ◦如果要判断目录是否存在,请用独立函数 is_dir(direct
-
PHP中file_exists函数不支持中文名的解决方法
一般来说PHP中常使用file_exists()判断某个文件或者文件夹是否存在,如果存在则返回true,否则返回false.但是该函数在网页使用UTF8编码的情况下,对于中文的文件名或者文件夹名不能返回正确值,始终返回false.经测试之后得出解决方法,分析造成这一情况的原因应该是编码不同而导致的PHP不能正确判断. 下面这段代码是不能够返回正确值的代码,无论文件是否在都返回不在: <?php; $file="/attachment/21/0/中文.rar"; $newfile
-
python中round函数保留两位小数的方法
在我们日常计算的过程中,如果计算出小数,对大量的被保留数据,采用四舍五入这种保留法的误差总和是最小的,能使被保留部分的与实际值差值不超过最后一位数量级的二分之一.四舍五入是一种精确度的保留法,是我们使用这种方法为基本保留法的原因.那在我们的python中如何四舍五入?如何保留小数?用round函数就可以. 1.round函数 python的内置函数,用于数字的四舍五入. 2.round 负数 四舍五入是围绕着0来计算的 示例 round(0.5) # 1.0 round(-0.5) #-1.0
-
在java中main函数如何调用外部非static方法
使用外部方法时(不管是static还是非static),都要先new一个对象,才能使用该对象的方法. 举例如下: 测试函数(这是错误的): public class Test { public static void main(String[] args) { Employee employee = null; employee.setName("旺旺"); //有警告,况且这里也执行不下去 employee.setEmail("ww@qq.com"); emplo
-
网页中JS函数自动执行常用三种方法
本文为大家分享了在网页中JS函数自动执行常用方法,供大家参考,具体内容如下 一.JS方法 1.最简单的调用方式,直接写到html的body标签里面: <body onload="myfunction()"> <html> <body onload="func1();func2();func3();"> </body> </html> 2.在JS语句调用: <script type="text
-
PHP中round()函数对浮点数进行四舍五入的方法
本文实例讲述了PHP中round()函数对浮点数进行四舍五入的方法.分享给大家供大家参考.具体方法如下: 语法:round(x,prec) 参数 描述 x 可选,规定要舍入的数字. prec 可选,规定小数点后的位数. 说明:返回将 x 根据指定精度 prec(十进制小数点后数字的数目)进行四舍五入的结果,prec 也可以是负数或零(默认值). 提示和注释 注释:php默认不能正确处理类似 "12,300.2" 的字符串. 注释:prec 参数是在 php 4 中被引入的,实例代码如下
-
jQuery Ajax Post 回调函数不执行问题的解决方法
今天在写一个检查用户名的功能时,使用的是jQuery.post( url, [data], [callback], [type] )这个函数,但是发现其中的回调函数不能执行. 先来看看我的代码: 前台代码: <script type="text/javascript"> function checkUser() { var user = $('#<%=txtUser.ClientID %>').val(); $.post('checkUser.ashx', {
-
浅谈pandas中DataFrame关于显示值省略的解决方法
python的pandas库是一个非常好的工具,里面的DataFrame更是常用且好用,最近是越用越觉得设计的漂亮,pandas的很多细节设计的都非常好,有待使用过程中发掘. 好了,发完感慨,说一下最近DataFrame遇到的一个细节: 在使用DataFrame中有时候会遇到表格中的value显示不完全,像下面这样: In: import pandas as pd longString = u'''真正的科学家应当是个幻想家:谁不是幻想家,谁就只能把自己称为实践家.人生的磨难是很多的, 所以我们
-
PHP中实现中文字串截取无乱码的解决方法
在PHP中,substr()函数截取带有中文字符串的话,可能会出现乱码,这是因为中西文一个字节所占有的字节数不一样,而substr的长度参数是按照字节去算的,在GB2312编码时,一个中文占2个字节,英文为1个字节,而在UTF-8编码当中,一个中文可能占有2个或3个字节,英文或半角标点占1字节. 直接使用PHP函数substr截取中文字符可能会出现乱码,主要是substr可能硬生生的将一个中文字符"锯"成两半.解决办法: 1.使用mbstring扩展库的mb_substr截取就不会出现
-
Go中http超时问题的排查及解决方法
背景 最新有同事反馈,服务间有调用超时的现象,在业务高峰期发生的概率和次数比较高.从日志中调用关系来看,有2个调用链经常发生超时问题. 问题1: A服务使用 http1.1 发送请求到 B 服务超时. 问题2: A服务使用一个轻量级http-sdk(内部http2.0) 发送请求到 C 服务超时. Golang给出的报错信息时: Post http://host/v1/xxxx: net/http: request canceled while waiting for connection (C
随机推荐
- Tomcat7.0安装配置详细(图文)
- php判断字符以及字符串的包含方法属性
- CentOS 7下配置Ruby语言开发环境的方法教程
- Excel VBA连接并操作Oracle
- java简单快速排序实例解析
- java通过模拟post方式提交表单实现图片上传功能实例
- 详解context root修改无效web修改项目路径(eclipse)
- 详解iOS多线程GCD问题
- ASP.Net不执行问题一解
- JS基于VML技术实现的五角星礼花效果代码
- Android中使用sax解析xml文件的方法
- Android实现地理定位功能
- 在js中判断checkboxlist(.net控件客户端id)是否有选中
- 一个简单的linux命令 touch
- document.getElementById的一些细节
- 浅析国内某网络游戏的安全现况
- Tomcat 日志切割(logrotate)详细介绍
- C++智能指针shared_ptr分析
- Android使用多线程进行网络聊天室通信
- The specified CGI application misbehaved by not returning a complete set of HTTP headers