關於php basename()函數的基本使用方法,大家可以查看這篇文章《php basename()解析路徑並獲取文件名稱》
有兩種方法可以解決basename()函數無法獲取帶中文字符的文件名
用setlocale()函數設置區域方法
preg_replace()正則表達式方法
下面具體瞭解每種方法如何實現basename()支持中文
第一種方法:setlocale()函數設置區域
basename()函數依賴於區域,所以我們需要使用setlocale()爲其設置區域
<?php
setlocale(LC_ALL, 'zh_CN.GBK');
$path = "/home/www/data/用戶.txt";
$filename = basename($path);
print $filename;
?>
輸出:用戶.txt
第二種方法:preg_replace()正則表達式
<?php
/* http://www.manongjc.com/article/1296.html */
function get_basename($filename){
return preg_replace('/^.+[\\\\\\/]/', '', $filename);
}
$path = "/home/www/data/用戶.txt";
$filename = get_basename($path);
print $filename;
?>
輸出:用戶.txt