首頁  >  文章  >  後端開發  >  PHP函數運用之利用字串函數來提取檔案的副檔名

PHP函數運用之利用字串函數來提取檔案的副檔名

青灯夜游
青灯夜游原創
2021-08-18 19:06:013582瀏覽

在先前的文章《PHP函數運用之利用陣列來輸出檔案的副檔名》中,我們介紹了兩種利用陣列來取得檔案副檔名的方法。這次我們繼續介紹取得檔案副檔名的方法,看看利用字串函數要怎麼操作,有興趣的朋友可以學習了解一下~

首先我們回憶一下上文,從上文我們了解到一個完整的文件格式可分為三個部分:字元“.”之前的內容字元“.”字元“.”之後的內容

這次我們還是要利用 字元「.,透過它來取得檔案副檔名!下面我們會為大家介紹3種利用字串函數來取得檔案副檔名的方法。

首先我們來看看第一個利用字串函數來取得檔案副檔名的方法

<?php
function getExtension($filename){
         $ext = strrchr($filename,&#39;.&#39;);
         return $ext;
}
$filename="dir/upload/image.gif";
echo getExtension($filename);
?>

分析一下上面的關鍵程式碼:

#strrchr($filename,'.')的意思為傳回字串$filename中從字元「.」開始到字串結尾的所有字元。因此輸出結果為:

PHP函數運用之利用字串函數來提取檔案的副檔名

接下來我們來看看第二種利用字串函數取得檔案副檔名的方法

<?php
function getExtension($filename){
    $pos = strrpos($filename, &#39;.&#39;);
    $ext = substr($filename, $pos);
    return $ext;
}
$filename="dir/upload/image.gif";
echo getExtension($filename);
?>

輸出結果為:

PHP函數運用之利用字串函數來提取檔案的副檔名

OK,分析一下上面的關鍵程式碼:

  • 首先我們使用 strrpos($filename, '.')取得到字元「.」在字串$filename中最後一次出現的位置$pos,然後將$ pos作為substr()函數的第二個參數。

  • substr($filename, $pos)會根據$pos設定的位置開始截取字串$filename,傳回從$pos開始到字串結尾的所有字元。因此會輸出“.gif”。

如果想要取得不包含字元“.”的副檔名,即傳回“gif”,那麼可以設定substr($filename, $ pos 1),這樣輸出結果就為:

PHP函數運用之利用字串函數來提取檔案的副檔名

#最後我們來看看第三種利用字串函數取得檔案副檔名的方法

<?php
function getExtension($filename){
    $filename = strrev($filename);
    $ext = strstr($str,&#39;.&#39;,true);
    return strrev($ext);
}
$filename="dir/upload/image.gif";
echo getExtension($filename);
?>

分析一下上面的關鍵程式碼:

strstr($filename,'.',true)可以取得字串$filename 中從開頭到字符“.” 第一次出現前的所有字符,即獲取字符“.”之前的內容,輸出一下看看:

PHP函數運用之利用字串函數來提取檔案的副檔名

這和我們的預期不符合,此時我想了一下,既然是取得 字元「.」之前的內容,那麼就把字串反轉一下,讓表示擴展名的那幾個字符在字符“.”之前不久行了!

因此,先使用strrev($filename)來反轉字串$filename,再使用strstr($filename,'.',true )來取得字元「.」之前的內容,這次輸出看看結果:

PHP函數運用之利用字串函數來提取檔案的副檔名

可以了,取得到顛倒的副檔名了,呼叫strrev($filename)再反轉一次字串,這樣就取得到正常的副檔名了,看看輸出結果:

PHP函數運用之利用字串函數來提取檔案的副檔名

##好了就說到這裡了,有其他想知道的,可以點這個哦。 → →

php影片教學

 最後給大家推薦閱讀一個經典課程《

PHP字串處理(玉女心經版)》,免費的~快來學習啊!

以上是PHP函數運用之利用字串函數來提取檔案的副檔名的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn