在先前的文章《PHP函數運用之利用陣列來輸出檔案的副檔名》中,我們介紹了兩種利用陣列來取得檔案副檔名的方法。這次我們繼續介紹取得檔案副檔名的方法,看看利用字串函數要怎麼操作,有興趣的朋友可以學習了解一下~
首先我們回憶一下上文,從上文我們了解到一個完整的文件格式可分為三個部分:字元“.”之前的內容、字元“.”、字元“.”之後的內容 。
這次我們還是要利用 字元「.
」,透過它來取得檔案副檔名!下面我們會為大家介紹3種利用字串函數來取得檔案副檔名的方法。
首先我們來看看第一個利用字串函數來取得檔案副檔名的方法
<?php function getExtension($filename){ $ext = strrchr($filename,'.'); return $ext; } $filename="dir/upload/image.gif"; echo getExtension($filename); ?>
分析一下上面的關鍵程式碼:
#strrchr($filename,'.')
的意思為傳回字串$filename
中從字元「.
」開始到字串結尾的所有字元。因此輸出結果為:
接下來我們來看看第二種利用字串函數取得檔案副檔名的方法
<?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
中最後一次出現的位置$pos
,然後將$ pos
作為substr()函數的第二個參數。
substr($filename, $pos)
會根據$pos
設定的位置開始截取字串$filename
,傳回從$pos
開始到字串結尾的所有字元。因此會輸出“.gif
”。
如果想要取得不包含字元“.”的副檔名,即傳回“gif
”,那麼可以設定substr($filename, $ pos 1)
,這樣輸出結果就為:
#最後我們來看看第三種利用字串函數取得檔案副檔名的方法
<?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
中從開頭到字符“.
” 第一次出現前的所有字符,即獲取字符“.
”之前的內容,輸出一下看看:
這和我們的預期不符合,此時我想了一下,既然是取得 字元「.」之前的內容,那麼就把字串反轉一下,讓表示擴展名的那幾個字符在字符“.”之前不久行了!
因此,先使用strrev($filename)
來反轉字串$filename
,再使用strstr($filename,'.',true )
來取得字元「.」之前的內容,這次輸出看看結果:
可以了,取得到顛倒的副檔名了,呼叫strrev($filename)
再反轉一次字串,這樣就取得到正常的副檔名了,看看輸出結果:
PHP字串處理(玉女心經版)》,免費的~快來學習啊!
以上是PHP函數運用之利用字串函數來提取檔案的副檔名的詳細內容。更多資訊請關注PHP中文網其他相關文章!