在之前的文章《PHP函數(shù)運用之:利用數(shù)組來輸出文件的擴展名》中,我們介紹了兩種利用數(shù)組來獲取文件擴展名的方法。這次我們繼續(xù)介紹獲取文件擴展名的方法,看看利用字符串函數(shù)要怎么操作,感興趣的朋友可以學習了解一下~
首先我們回憶一下上文,從上文我們了解到一個完整的文件格式可分為三個部分:字符“.”之前的內(nèi)容、字符“.”、字符“.”之后的內(nèi)容。
這次我們還是要利用 字符“.
”,通過它來獲取文件擴展名!下面我們會給大家介紹3種利用字符串函數(shù)獲取文件擴展名的方法。
首先我們來看看第一種利用字符串函數(shù)獲取文件擴展名的方法
<?php function getExtension($filename){ $ext = strrchr($filename,'.'); return $ext; } $filename="dir/upload/image.gif"; echo getExtension($filename); ?>
分析一下上面的關鍵代碼:
strrchr($filename,'.')
的意思為返回字符串$filename
中從字符“.
”開始到字符串結尾的所有字符。因此輸出結果為:
接下來我們看看第二種利用字符串函數(shù)獲取文件擴展名的方法
<?php function getExtension($filename){ $pos = strrpos($filename, '.'); $ext = substr($filename, $pos); return $ext; } $filename="dir/upload/image.gif"; echo getExtension($filename); ?>
輸出結果為:
OK,分析一下上面的關鍵代碼:
-
首先我們使用
strrpos($filename, '.')
獲取到字符“.”在字符串$filename
中最后一次出現(xiàn)的位置$pos
,然后將$pos
作為substr()函數(shù)的第二個參數(shù)。 -
substr($filename, $pos)
會根據(jù)$pos
設置的位置開始截取字符串$filename
,返回從$pos
開始到字符串結尾的所有字符。因此會輸出“.gif
”。
如果想要獲取不包括字符“.”的擴展名,即返回“gif
”,那么可以設置substr($filename, $pos+1)
,這樣輸出結果就為:
最后我們看看第三種利用字符串函數(shù)獲取文件擴展名的方法
<?php function getExtension($filename){ $filename = strrev($filename); $ext = strstr($str,'.',true); return strrev($ext); } $filename="dir/upload/image.gif"; echo getExtension($filename); ?>
分析一下上面的關鍵代碼:
strstr($filename,'.',true)
可以獲取字符串$filename
中從開頭到 字符“.
” 第一次出現(xiàn)前的所有字符,即獲取 字符“.
”之前的內(nèi)容,輸出一下看看:
這和我們的預期不符合,此時我想了一下,既然是獲取 字符“.”之前的內(nèi)容,那么就把字符串反轉(zhuǎn)一下,讓表示擴展名的那幾個字符在字符“.”之前不久行了!
因此,先使用strrev($filename)
來反轉(zhuǎn)字符串$filename
,再使用strstr($filename,'.',true)
來獲取 字符“.”之前的內(nèi)容,這次輸出看看結果:
可以了,獲取到顛倒的擴展名了,調(diào)用strrev($filename)
再反轉(zhuǎn)一次字符串,這樣就獲取到正常的擴展名了,看看輸出結果:
好了就說到這里了,有其他想知道的,可以點擊這個哦?!?→php視頻教程
最后給大家推薦閱讀一個經(jīng)典課程《PHP字符串處理(玉女心經(jīng)版)》,免費的~快來學習??!