//截取文件扩展名的N种方法

  //第1种

//strrchr() 函数查找字符在指定字符串中最后一次出现的位置,如果成功,则返回其后面的字符串

//返回带有点的扩展名

function get_extension($file){

return strrchr($file, '.');

}

echo get_extension("d.sdf.jpeg");

//第2种

//strchr() 函数查找字符在指定字符串中第一次出现的位置,如果成功,则返回其后面的字符串

//利用回调函数反复去掉所以的点.

//返回不带点的扩展名

function get_extension($file){

$res=trim(strchr($file,'.'),'.');

if(strchr($res,'.')){

$res=get_extension($res);//利用回调函数反复去掉所以的点.

}

return $res;

}

$file='fef.fadsf.fadsf.d.sdf.jpeg';

print_r( get_extension($file, '.'));

    //用while循环

//strstr和strchr是同一个函数

$strstr = "fds.fdsaf.fdsa/fsda.ees.see.jpg";

while($strstr = strstr($strstr, ".")) {

$strstr = substr($strstr, 1);

if(false === strpos($strstr, ".")) {

break;

}

}

var_dump($strstr);

   //第3种

//查找字符串在另一字符串中最后出现的位置(不区分大小写),返回位置数字;strrpos对大小写敏感

//返回带有点的扩展名

function get_extension($file){

$begin=strripos($file, '.');

return substr($file,$begin);

}

$file='d.sdf.jpeg';

echo get_extension($file, '.');

//第4种

//利用explode把文件名分割成数组,取数组中最后一个值即为文件的扩展名

//返回不带点的扩展名

function get_extension($file){

return end(explode('.', $file));

//另一种处理方式 return array_pop(explode('.', $path));

}

$file='d.sdf.jpeg';

echo get_extension($file, '.');

    //第5种

//pathinfo() 函数以数组的形式返回文件路径的信息。数组元素:[dirname]、[basename]、[extension]

function get_extension($file){

$info = pathinfo($file);

return $info['extension'];

//另一种处理方式 return pathinfo($file, PATHINFO_EXTENSION);

}

$file='d.sdf.jpeg';

echo get_extension($file, '.');

    //第6种

//正则匹配

//返回不带点的扩展名

$path = "fds/ees.see.jpg";

preg_match("/.+\.([^\.]+)/", $path,$array);

print_r($array[1]);

   //第7种

//正则匹配

//返回不带点的扩展名

$path = "fds/ees.see.jpg";

echo (preg_replace('/.*\.(.*[^\.].*)*/iU','\\1',$path));

  //第8种

//strtok 函数:把字符串分割为更小的字符串

//返回不带点的扩展名

$path = "fds/ees.see.jpg";

$strtok = strtok($path, ".");

while($strtok !== false){

$return = $strtok;

$strtok = strtok('.');

}

echo($return);

//获取url扩展名

  //第1种

//返回不带点的扩展名

function getExt($url){

$path=parse_url($url);

$str=explode('.',$path['path']);

return $str[1];

}

echo getExt('http://tools.jb51.net/abc/de/fg.php?id=1'); //php

   //第2种

function retrieve($url) {

preg_match('/\/([^\/]+\.[a-z]+)[^\/]*$/',$url,$match); //$match=Array ( [0] => /fg.php?id=1 [1] => fg.php )

return strrchr($match[1], '.'); //这里的可以套用截取文件扩展名的1、2、3、4、5、8种方法

}

print_r( retrieve('http://tools.jb51.net/abc/de/fg.php?id=1')); //.php

    //第3种

//返回不带点的扩展名

function getExt($url){

$end=end(explode('/',$url));

if(stripos($end,'?')){//有参数时

$end=substr($end,0,stripos($end,'?'));

}

$str=explode('.',$end);

return $str[1];

}

【技术宅3】截取文件和url扩展名的N种方法的更多相关文章

  1. PHP中获取文件扩展名的N种方法

    PHP中获取文件扩展名的N种方法 从网上收罗的,基本上就以下这几种方式: 第1种方法:function get_extension($file){substr(strrchr($file, '.'), ...

  2. win7系统中如何使文件显示出扩展名

    win7系统中如何使文件显示出扩展名-------------------- 1.点击计算机-->>点击组织,然后选择"文件夹及搜索选项"-->> ---- ...

  3. win7系统中如何使文件显示出扩展名或显示文件后缀名

    win7系统中如何使文件显示出扩展名-------------------- 1.点击计算机-->>点击组织,然后选择“文件夹及搜索选项”-->> -------------- ...

  4. windows服务器设置文件属性设置去掉隐藏已知文件类型的扩展名(即文件后缀名可见)

    摘要: 1.文件后缀名不可见,系统运维过程容易发生同名不同后缀的文件操作混淆的情况 2.windows系统默认是文件后缀名不可见 3.所以需要更改一下配置. 4.操作步骤如下图: (1)点击组织-文件 ...

  5. Delphi获取文件名、文件名不带扩展名、文件名的方法;delphi 获取文件所在路径

    取文件名 ExtractFileName(FileName); 取文件扩展名: ExtractFileExt(filename); 取文件名,不带扩展名: 方法一:   Function Extrac ...

  6. 运维系列之二 Linux文件种类和扩展名

    一.文件种类 1.普通文件 用ls查看文件属性时,显示的是[-] 2.目录文件(directory) 文件属性第一个为[d] 3.连接文件(link) 类似于win下的快捷方式,文件第一个属性为[l] ...

  7. NO21 Llinux的文件种类与扩展名--文件权限--软硬链接--Linux删除文件原理

    Linux的文件种类与扩展名 一.文件种类:1.普通文件(regular file)第一个字符为[ - ]包括:①纯文本档(ASCII):这是Linux系统中最多的一种文件类型,称为纯文本档.是因为内 ...

  8. PHP获取文件后缀名的三种方法

    如下: <? PHP获取文件后缀名的几种方法1: function get_file_type($filename){ $type = substr($filename, strrpos($fi ...

  9. Linux 中改变主机名的 4 种方法

    今天,我们将向你展示使用不同的方法来修改主机名.你可以从中选取最适合你的方法. 使用 systemd 的系统自带一个名为 hostnamectl 的好用工具,它可以使我们能够轻易地管理系统的主机名. ...

随机推荐

  1. Anjuta 调试无输出 warning: GDB: Failed to set controlling terminal

    调试无输出,起初以为是那个warning的问题,后来才知道这个系统printf直到遇到'\n'换行符才输出,VC6用习惯了没想到还有这样的,网上说这样是节省系统资源. 那个warning暂时还没看到影 ...

  2. ecshop判断搜索引擎是否为蜘蛛

    <?php /** * 判断是否为搜索引擎蜘蛛 * * @access public * @return string */ function is_spider($record = true) ...

  3. 【题解】A-B

    [问题描述]出题是一件痛苦的事情!题目看多了也有审美疲劳,于是我舍弃了大家所熟悉的 A+B Problem,改用 A-B 了哈哈!好吧,题目是这样的:给出一串数以及一个数字 C,要求计算出所有 A-B ...

  4. 了解各种AA特性

    AA(Anti-Aliasing)抗锯齿想必不少玩家在游戏画质设定中经常会遇到,说通俗一点AA抗锯齿的作用:将图像边缘及其两侧的像素颜色进行混 合,然后用新生成的具有混合特性的点来替换原来位置上... ...

  5. 关于setLayoutParams报错

    有两个可能的原因  1.内部view没有用其parent的LayoutParams在继承BaseAdapter的时候,用getView返回View的时候,用代码控制布局,需要用到View.setLay ...

  6. guice框架的入门使用

    guice框架是一种类似于spring的ioc容器的一种框架,使用简单,比較轻量级的一个框架,速度极快,灵活性极强,如今就先来写几个guice的程序. 在这里我就不给出guice的jar包,这些都能够 ...

  7. [Angular + Unit] AngularJS Unit testing using Karma

    http://social.technet.microsoft.com/wiki/contents/articles/32300.angularjs-unit-testing-using-karma- ...

  8. linux下sqlite3可视化工具

    1.介绍:sqlite3是linux上的小巧的数据库,一个文件就是一个数据库. 2.安装:要安装sqlite3,可以在终端提示符后运行下列命令:sudo apt-get install sqlite3 ...

  9. myeclipse一些技巧

    ctrl+h-----------------查找字符串 ctrl+A 全选→ctrl+shift+f 代码格式化,排版 ctrl+shift+O  自动引用

  10. 2016年11月2日——jQuery源码学习笔记

    1.jQuery()函数,即$().有四种不同的调用方式. (1)传递CSS选择器(字符串)给$()方法,返回当前文档中匹配该选择器的元素集.可选第二个参数,一个元素或jQuery对象,定义元素查询的 ...