本文目錄一覽:
php怎樣獲取文件後綴名?
//方法一:
function extend_1($file_name){
$retval=””;
$pt=strrpos($file_name, “.”);
if($pt)
$retval=substr($file_name, $pt+1, strlen($file_name) – $pt);
return ($retval);
}
//方法二
function extend_2($file_name){
$extend = pathinfo($file_name);
$extend = strtolower($extend[“extension”]);
return $extend;
}
//方法三 function extend_3($file_name){
$extend =explode(“.” , $file_name);
$va=count($extend)-1;
return $extend[$va];
}
php從給定url獲取文件擴展名的方法
本文實例講述了php從給定url獲取文件擴展名的方法。分享給大家供大家參考。具體實現方法如下:
?php
/**
*
給定url,獲取文件後綴
*
@param
string
$url
*
@return
string
*/
function
getUrlPostfix
($url)
{
$url_arr
=
explode(‘.’,
$url);
$postfix
=
$url_arr[count($url_arr)
–
1];
$substr
=
substr($postfix,
0,
3);
return
$substr;
}
$url
=
“”;
$str
=
getUrlPostfix($url);
echo
$str
.
“n”;
希望本文所述對大家的php程序設計有所幫助。
php 能用多少種方法去獲取文件後綴
//第1種方法:
function get_extension($file)
{
substr(strrchr($file, ‘.’), 1);
}
//第2種方法:
function get_extension($file)
{
return substr($file, strrpos($file, ‘.’)+1);
}
//第3種方法:
function get_extension($file)
{
return end(explode(‘.’, $file));
}
//第4種方法:
function get_extension($file)
{
$info = pathinfo($file);
return $info[‘extension’];
}
//第5種方法:
function get_extension($file)
{
return pathinfo($file, PATHINFO_EXTENSION);
}
……
php截取文件擴展名
解決樓主的問題的方法就是,分開寫代碼,即:
$filearr
=
split(“.”,$filename);
$filetype
=
end($filearr);
split
函數用來分割字符串的時候,基本等同於函數
preg_grep,分割表達式可以是一個正則表達式,也可以是一個普通字符串,所以本身的執行效率很低,這一點你要記得……
所以,實現你現在的這個需求的話,最好用explode函數,使用普通字符作為分割表達式……
但是也的確如樓上所說,split
函數(PHP里)已經棄用,你可以使用
preg_match、preg_match_all
、preg_grep
等使用正則表達式作為分割的函數來替代。
就整個你的需求而言,你的思路還不很好,當一個文件名是【a.b.c.d.e.f.g.php】的時候,程序要浪費多餘的資源來分割其實你不用的a、b、c……,
所以要簡單滿足你取後綴名的需求的代碼應該是:
$filetype=substr(strrchr($filename,’.’),1);
此外還有:$path_info
=
pathinfo($filename);
$filetype
=
$path_info[‘extension’];
其實不是很推薦。
下面比較一下它們各自的執行效率:
設文件名是:aaa.bb.php、循環執行10000次;執行10次取平均值:
split
+
end
:0.067644s
explode
+
end
:0.016251s
pathinfo
+
[‘extension’]
:0.018983s
strrchr
+
substr
:0.008611s
【以上文字現場版純手敲,2012-2-25
10:41,謝謝】
PHP 沒有後綴名的文件怎麼獲取後綴
我給你思路吧
首先沒有後綴,那隻能通過文件頭來判斷了
function getFileType($file){
if(!empty($file)){
//打開文件
$filehead = fopen($file,’r’);
//讀取文件2位元組
$bin = fread($filehead, 2);
fclose($filehead);
//二進制字符串對數據進行解包
$data = unpack(‘C2chars’, $bin);
$type_code = intval($data[‘chars1’].$data[‘chars2’]);
switch ($type_code) {
case 7790:
$fileType = ‘exe’;
break;
case 7784:
$fileType = ‘midi’;
break;
case 8075:
$fileType = ‘zip’;
break;
case 8297:
$fileType = ‘rar’;
break;
case 255216:
$fileType = ‘jpg’;
break;
case 7173:
$fileType = ‘gif’;
break;
case 6677:
$fileType = ‘bmp’;
break;
case 13780:
$fileType = ‘png’;
break;
default:
$fileType = ‘unknown’;
break;
}
return $fileType;
}
–
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/185049.html