您好,登錄后才能下訂單哦!
這篇文章主要講解了“PHP怎么利用字符串函數(shù)來提取文件的擴(kuò)展名”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“PHP怎么利用字符串函數(shù)來提取文件的擴(kuò)展名”吧!
首先我們回憶一下上文,從上文我們了解到一個完整的文件格式可分為三個部分:字符“.”之前的內(nèi)容、字符“.”、字符“.”之后的內(nèi)容。
這次我們還是要利用 字符“.
”,通過它來獲取文件擴(kuò)展名!下面我們會給大家介紹3種利用字符串函數(shù)獲取文件擴(kuò)展名的方法。
首先我們來看看第一種利用字符串函數(shù)獲取文件擴(kuò)展名的方法
<?php function getExtension($filename){ $ext = strrchr($filename,'.'); return $ext; } $filename="dir/upload/image.gif"; echo getExtension($filename); ?>
分析一下上面的關(guān)鍵代碼:
strrchr($filename,'.')
的意思為返回字符串$filename
中從字符“.
”開始到字符串結(jié)尾的所有字符。因此輸出結(jié)果為:
接下來我們看看第二種利用字符串函數(shù)獲取文件擴(kuò)展名的方法
<?php function getExtension($filename){ $pos = strrpos($filename, '.'); $ext = substr($filename, $pos); return $ext; } $filename="dir/upload/image.gif"; echo getExtension($filename); ?>
輸出結(jié)果為:
OK,分析一下上面的關(guān)鍵代碼:
首先我們使用strrpos($filename, '.')
獲取到字符“.”在字符串$filename
中最后一次出現(xiàn)的位置$pos
,然后將$pos
作為substr()函數(shù)的第二個參數(shù)。
substr($filename, $pos)
會根據(jù)$pos
設(shè)置的位置開始截取字符串$filename
,返回從$pos
開始到字符串結(jié)尾的所有字符。因此會輸出“.gif
”。
如果想要獲取不包括字符“.”的擴(kuò)展名,即返回“gif
”,那么可以設(shè)置substr($filename, $pos+1)
,這樣輸出結(jié)果就為:
最后我們看看第三種利用字符串函數(shù)獲取文件擴(kuò)展名的方法
<?php function getExtension($filename){ $filename = strrev($filename); $ext = strstr($str,'.',true); return strrev($ext); } $filename="dir/upload/image.gif"; echo getExtension($filename); ?>
分析一下上面的關(guān)鍵代碼:
strstr($filename,'.',true)
可以獲取字符串$filename
中從開頭到 字符“.
” 第一次出現(xiàn)前的所有字符,即獲取 字符“.
”之前的內(nèi)容,輸出一下看看:
這和我們的預(yù)期不符合,此時我想了一下,既然是獲取 字符“.”之前的內(nèi)容,那么就把字符串反轉(zhuǎn)一下,讓表示擴(kuò)展名的那幾個字符在字符“.”之前不久行了!
因此,先使用strrev($filename)
來反轉(zhuǎn)字符串$filename
,再使用strstr($filename,'.',true)
來獲取 字符“.”之前的內(nèi)容,這次輸出看看結(jié)果:
可以了,獲取到顛倒的擴(kuò)展名了,調(diào)用strrev($filename)
再反轉(zhuǎn)一次字符串,這樣就獲取到正常的擴(kuò)展名了,看看輸出結(jié)果:
感謝各位的閱讀,以上就是“PHP怎么利用字符串函數(shù)來提取文件的擴(kuò)展名”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對PHP怎么利用字符串函數(shù)來提取文件的擴(kuò)展名這一問題有了更深刻的體會,具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。