自编函数解决pathinfo()函数处理中文问题

今天写程序时遇到一个小问题,pathinfo在处理中文文件名时出现的问题,如果中文在字首就出现获取的filename为空,英文在字首后面是中文的则能获取到。如下图:

于是自己写了个函数代替,代码如下:

代码如下:

function path_info($filepath)  
{  
    $path_parts = array();  
    $path_parts ['dirname'] = rtrim(substr($filepath, 0, strrpos($filepath, '/')),"/")."/";  
    $path_parts ['basename'] = ltrim(substr($filepath, strrpos($filepath, '/')),"/");  
    $path_parts ['extension'] = substr(strrchr($filepath, '.'), 1);  
    $path_parts ['filename'] = ltrim(substr($path_parts ['basename'], 0, strrpos($path_parts ['basename'], '.')),"/");  
    return $path_parts;  
}

这样问题就解决了

(0)

相关推荐

  • PHP命令行执行整合pathinfo模拟定时任务实例

    命令行模式下,根据传参,调用不同控制器.控制器中根据配置定时执行指定方法 Application.php <?php class Application{ public static function main(){ header("content-type:text/html;charset=utf-8"); self::register(); self::commandLine(); self::pathInfo(); } //自动加载 public static funct

  • 在命令行下运行PHP脚本[带参数]的方法

    创建一个简单的文本文件,其中包含有以下PHP代码,并把它保存为hello.php: 复制代码 代码如下: <?php echo "Hello from the CLI"; ?> 现在,试着在命令行提示符下运行这个程序,方法是调用CLI可执行文件并提供脚本的文件名: #php phphello.php 输出Hello from the CLI 使用标准的输入和输出 你可以在自己的PHP脚本里使用这三个常量,以接受用户的输入,或者显示处理和计算的结果.要更好地理解这一点,可以看

  • 自编函数解决pathinfo()函数处理中文问题

    今天写程序时遇到一个小问题,pathinfo在处理中文文件名时出现的问题,如果中文在字首就出现获取的filename为空,英文在字首后面是中文的则能获取到.如下图: 于是自己写了个函数代替,代码如下: 复制代码 代码如下: function path_info($filepath)   {       $path_parts = array();       $path_parts ['dirname'] = rtrim(substr($filepath, 0, strrpos($filepat

  • escape函数解决js中ajax传递中文出现乱码问题

    本文实例讲述了escape函数解决js中ajax传递中文出现乱码问题,分享给大家供大家参考.具体方法如下: 一.问题描述: 本来网页特效中的escape()是将中文按iso-8859-1字符集进行url编码的,那样通过 request.getparameter()是能直接获取到请求参数的,但后来的javascript将escape()换成了unicode字符集编 码,如此一来,在jsp教程和servlet中就没法直接拿到请求参数了,具体原因我也不知道. 二.解决办法: 1.首先对中文字符进行两次

  • php的GD库imagettftext函数解决中文乱码问题

    本文实例讲述了php的GD库imagettftext函数解决中文乱码问题的方法.分享给大家供大家参考.具体如下: 使用imagettftext写中文时,常出现乱码问题.解决方法是将中文字符串转为utf-8格式即可.具体代码如下(文件格式为gb2312): 复制代码 代码如下: <?php $im = imagecreatefromjpeg('./1.jpg'); $w = imagesx($im); $h = imagesy($im); $green = imagecolorallocate($

  • navicat不能创建函数解决方法分享

    第一次写MySQL FUNCTION,一直报错, Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '`company_id` int) RETURNS varchar(20) CHARSET utf8 BEGIN 本来的函数: CREATE DEFINER

  • vue中父子组件传值,解决钩子函数mounted只运行一次的操作

    因为mounted函数只会在html和模板渲染之后会加载一次,但是在子组件中只有第一次的数据显示是正常的,所以需要再增加一个updated函数,在更新之后就可以重新进行取值加载,完成数据的正常显示. beforCreate(创建之前) Created(创建之后) beforMount(载入之前) Mounted(载入之后) beforUpdate(更新之前) Updated(更新之后) beforDestroy(销毁之前) Destroyed(销毁之后) activate(keep-alive组

  • 详解PHP中pathinfo()函数导致的安全问题

    定义和用法 pathinfo() 函数以数组或字符串的形式返回关于文件路径的信息. 返回的数组元素如下: [dirname]:返回文件路径中的目录部分 [basename]:返回文件路径中文件名的部分 [extension]:返回文件路径中文件的类型的部分 语法 pathinfo(path,options) 参数 path: 必需.规定要检查的路径. options 可选.规定要返回的数组元素.默认是 all. 可能的值: PATHINFO_DIRNAME - 只返回 dirname PATHI

  • 解决js函数闭包内存泄露问题的办法

    本文通过举例,由浅入深的讲解了解决js函数闭包内存泄露问题的办法,分享给大家供大家参考,具体内容如下 原始代码: function Cars(){ this.name = "Benz"; this.color = ["white","black"]; } Cars.prototype.sayColor = function(){ var outer = this; return function(){ return outer.color };

  • ThinkPHP自定义函数解决模板标签加减运算的方法

    本文实例讲述了ThinkPHP自定义函数解决模板标签加减运算的方法.分享给大家供大家参考.具体如下: 实际项目中,我们经常需要标签变量加减运算的操作.但是,在ThinkPHP中,并不支持模板变量直接运算的操作. 幸运的是,它提供了自定义函数的方法,我们可以利用自定义函数解决: ThinkPHP模板自定义函数语法如下: 格式:{:function(-)} (参考官方帮助文档:http://thinkphp.cn/Manual/196) 利用这个,我们来试做加法和减法. 一.在ThinkPHP中定义

  • 如何解决attachEvent函数时,this指向被绑定的元素的问题?

    使用attachEvent对同一事件进行多次绑定,这是解决事件函数定义冲突的重要方法.但是在IE中,函数内的this指针并没有指向被绑定元素,而是function对象,在应用中,这是很难受的一件事,如果试图用局部变量传送元素,会因为闭包而引起内存泄漏.那么,我们应该如何解决这一难题呢?    我给Function添加了原型方法"bindNode",在这个方法里,根据传送过来的元素,进行全局性存储转换,然后返回经过封装的函数,使用call方法来进行属主转换. test if(!docum

  • 一个函数解决SQLServer中bigint 转 int带符号时报错问题

    有一个需求是要在一个云监控的状态值中存储多个状态(包括可同时存在的各种异常.警告状态)使用了位运算机制在一个int型中存储. 现在监控日志数据量非常大(亿级别)需要对数据按每小时.每天进行聚合,供在线报表使用. 状态分了3个级别:正常(0).警告(1).异常(2),聚合时需要使用max选择最差的状态,就需要对状态值进行处理加上级别和状态位个数,就要借助bigint型来做运算了, 问题是再将bigint 转为 int时获取原始状态值时,SQLServer报错了: 消息 8115,级别 16,状态

随机推荐