<?php
$str = 'D:\phpStudy\WWW\dingcan\console\index.123.45.php';

function get_ext1($str){
    return substr(strrchr($str,'.'),1);
}
echo get_ext1($str).'<br />';

function get_ext2($str){
    return substr($str,strrpos($str,'.')+1);
}
echo get_ext2($str).'<br />';

function get_ext3($str){
    return end(explode('.',$str));
}
echo get_ext3($str).'<br />';

function get_ext4($str){
    return array_pop(explode('.',$str));
}
echo get_ext4($str).'<br />';

function get_ext5($str){
    $file_info = pathinfo($str);
    return $file_info['extension'];
}
echo get_ext5($str).'<br />';

function get_ext6($str){
    return pathinfo($str,PATHINFO_EXTENSION);
}
echo get_ext6($str).'<br />';
?>

 我学到了如下PHP内置函数:

string substr ( string $string , int $start [, int $length ] );

字符串截取,返回字符串的子串

第一个参数是被截取的字符串,第二个是截取的起始位置,第三个是要截取的长度。返回值为string  错误返回值为FALSE

第二个参数是从零开始计算,并且返回值包含起始位置!可以为负数从-1开始计数,例如-2就表示返回末尾的两个字符。

第三个参数也可以为负数,正数表示从开始位置往后的长度,负数表示从末尾位置往前的长度。

=====================================================================================================

string strrchr ( string $haystack , mixed $needle )

在字符串中查到指定子串最后一次出现的位置,并返回包含该位置之后的所有子串。返回值为string  错误返回值为FALSE

第一个参数是被查找的字符串,第二个参数是用来查找的子串。

雷同函数:

string strstr ( string $haystack , mixed $needle [, bool $before_needle = false ] )  //在字符串中查到指定子串第一次出现的位置,并返回包含该位置之后的所有子串。返回值为string  错误返回值为FALSE

string stristr ( string $haystack , mixed $needle [, bool $before_needle = false ] )  //strstr的忽略大小写的版本

=========================================================================================================

int strrpos ( string $haystack , string $needle [, int $offset = 0 ] )

返回字符串中指定子串最后一次出现的位置。返回值int  错误返回值FALSE

第一个参数被查找的字符串,第二个参数用来查找的子串(只能为单个字符,如果传过来的是字符串只会用第一个字符)。

注意找到位置返回值为0和没找到返回值为false容易发生混淆,所以判断的时候用 ===。

雷同函数:

mixed strpos ( string $haystack , mixed $needle [, int $offset = 0 ] )  //返回字符串中指定子串第一次出现的位置。返回值int  错误返回值FALSE

int stripos ( string $haystack , string $needle [, int $offset = 0 ] )  //返回字符串中指定子串第一次出现的位置。返回值int  错误返回值FALSE(不区分大小写)

int strripos ( string $haystack , string $needle [, int $offset = 0 ] )  //返回字符串中指定子串最后一次出现的位置。返回值int  错误返回值FALSE(不区分大小写)

=========================================================================================================

array explode ( string $delimiter , string $string [, int $limit ] )

使用一个字符串分割另一个字符串  返回值为数组  错误时为FALSE或者空数组

第一个参数是用来分隔的字符串 ,第二个参数是被分割的字符串,第三个参数可以为正或者负,具体用法参见手册。

当第三个参数为正数例如2,那么返回的数组中只有2个元素,第二个为分隔符后的剩余所有字符串;如果为负数,例如-2那么只会返回除了倒数第二个元素之外的其他元素。

雷同函数:

string implode ( string $glue , array $pieces )  //将一个一维数组的值转化为字符串 参数顺序和用法 雷同explode

=====================================================================================================

mixed end ( array &$array )

将数组的内部指针移动到最后一个单元并返回其值。 返回值为最后一个元素的值  错误时为FALSE

参数为数组,这里需要注意的是这个函数的参数默认为引用传递。

===========、=========================================================================================

mixed array_pop ( array &$array )

将数组最后一个元素弹出(出栈),返回值为最后一个元素,错误时返回NULL

参数为数组,注意这里是引用传递,所以在调用完这个函数后,传递过来的数组中最后一个元素就被删除了。

===============、=====================================================================================

mixed pathinfo ( string $path [, int $options = PATHINFO_DIRNAME | PATHINFO_BASENAME | PATHINFO_EXTENSION | PATHINFO_FILENAME ] )

返回文件路径的信息,返回值是一个关联数组,错误时返回的也是数组不过值都为空;

参数为文件的路径。其中返回的关联数组中包含四个元素分别为:dirname,basename,extension,filename。