在php的字符串處理中,basename函數(shù)是相當(dāng)常用的一個函數(shù)。basename函數(shù)的作用是返回路徑中的文件名部分。
基本使用方法:
$path = '/var/www/html/index.php'; echo basename($path); //將輸出index.php
可以看到,我們將$path變量傳入basename函數(shù)中,函數(shù)會自動提取出路徑中的文件名部分進(jìn)行返回。注意,如果路徑中已經(jīng)包含文件擴(kuò)展名,則該擴(kuò)展名也會被返回。
basename函數(shù)還可以接收兩個參數(shù),第一個參數(shù)為路徑字符串,第二個參數(shù)為要剝離的文件擴(kuò)展名,也就是說,如果文件名部分中包含該擴(kuò)展名,該擴(kuò)展名會被剝離掉。
$path = '/var/www/html/index.php'; echo basename($path, '.php'); //將輸出index
basename還可以將多個路徑字符串用相應(yīng)的系統(tǒng)分隔符連接起來,并返回整個路徑中的文件名部分。
$path1 = '/var/www/html/index.php'; $path2 = '/var/www/html/img/logo.png'; $path3 = '/var/www/html/css/style.css'; echo basename($path1)."
"; echo basename($path2)."
"; echo basename($path3)."
"; echo basename($path1.', '.$path2.', '.$path3); //分別輸出index.php、logo.png、style.css和html
從上面的例子中,我們可以看到,在將多個路徑字符串合并為一個字符串時,basename函數(shù)會返回最后一個路徑中的文件名部分。
在使用basename函數(shù)時,還需要注意一個問題:由于它是返回路徑中的文件名部分,因此路徑的最后一個字符必須是斜線或反斜線。否則,函數(shù)將返回路徑字符串本身。
$path = '/var/www/html'; echo basename($path); //將輸出html
但如果:
$path = '/var/www/html/'; echo basename($path); //將輸出空字符串
上面的例子中,雖然路徑字符串中包含文件夾名字,但是由于最后一個字符不是斜線或反斜線,因此函數(shù)返回的是路徑字符串本身。要解決這個問題,處理路徑字符串時,可以先用rtrim函數(shù)將路徑末尾的斜線或反斜線去掉。
綜上所述,basename函數(shù)是php中一個常用的字符串處理函數(shù)。它可以很方便地返回路徑中的文件名部分,同時還具有一定的參數(shù)靈活性,特別是在將多個路徑字符串合并為一個字符串時具有很好的應(yīng)用場景。