php獲取圖片後綴
Ⅰ php怎樣獲取文件後綴名
//方法一:
functionextend_1($file_name){
$retval="";
$pt=strrpos($file_name,".");
if($pt)
$retval=substr($file_name,$pt+1,strlen($file_name)-$pt);
return($retval);
}
//方法二內
functionextend_2($file_name){
$extend=pathinfo($file_name);
$extend=strtolower($extend["extension"]);
return$extend;
}
//方法三容functionextend_3($file_name){
$extend=explode(".",$file_name);
$va=count($extend)-1;
return$extend[$va];
}
Ⅱ 請問:php如何獲取數組中圖片名稱的後綴名呢
$aa=array('15.jpg','5.png');
$bb=array();//存放文件以及後綴
foreach($aaas$k=>$v){
$bb[$k]['img']=$v;
$bb[$k]['ext']=getExt($v);
}
print_r($bb);
//獲取文件後綴
functiongetExt($file){
returnsubstr(strrchr($file,'.'),1);
}
Ⅲ php 驗證上傳的文件類型為圖片,並獲得文件的後綴名
以下是我上傳了一個圖片後顯示的 $_FILES['filename']的信息
[filename] => Array
(
[name] => Winter.jpg
[type] => image/jpeg
[tmp_name] => /tmp/php2jw7QX
[error] => 0
[size] => 105542
)
其中type是文件類型的minitype 表示方法,例如普通的html的類型是text/html
如果你想用擴展名的方式判斷的話可以用以下代碼:
<?php
#允許的文件擴展名
$allowed_types = array('jpg', 'gif', 'png');
$filename = $_FILES['filename']['name'];
#正則表達式匹配出上傳文件的擴展名
preg_match('|\.(\w+)$|', $filename, $ext);
#print_r($ext);
#轉化成小寫
$ext = strtolower($ext[1]);
#判斷是否在被允許的擴展名里
if(!in_array($ext, $allowed_types)){
die('不被允許的文件類型');
}
?>
Ⅳ php如何獲取上傳文件的後綴
1.$file = 'x.y.z.png';
echo substr(strrchr($file, '.'), 1);
解析:strrchr($file, '.')
strrchr() 函數查找字元串在另一個字元串中最後一次出現的位置,並返回從該位置到字元串結尾的所有字元
2.$file = 'x.y.z.png';
echo substr($file, strrpos($file, '.')+1);
解析:strrpos($file, '.')
查找 "." 在字元串中最後一次出現的位置,返回位置 substr()從該位置開始截取
3.$file = 'x.y.z.png';
$arr=explode('.', $file);
echo $arr[count($arr)-1];
4.$file = 'x.y.z.png';
$arr=explode('.', $file);
echo end($arr); //end()返回數組的最後一個元素
5.$file = 'x.y.z.png';
echo strrev(explode('.', strrev($file))[0]);
6.$file = 'x.y.z.png';
echo pathinfo($file)['extension'];
解析:pathinfo() 函數以數組的形式返迴文件路徑的信息。包括以下的數組元素:
[dirname]
[basename]
[extension]
7.$file = 'x.y.z.png';
echo pathinfo($file, PATHINFO_EXTENSION);
總結:字元串截取2種,數組分割3種,路徑函數2種
Ⅳ 如何用PHP得到文件的擴展名
sybase_connect連上資料庫。
語法: int sybase_connect(string [servername], string [username], string [password]);
返回值: 整數函數種類: 資料庫功能 本函數用來打開與 Sybase 資料庫的連專接。
參數 servername 為欲連上屬的資料庫伺服器名稱。
參數 username 及 password 可省略,分別為連接使用的帳號及密碼。
使用本函數需注意早點關閉資料庫,以減少系統的負擔。
連接成功則返回資料庫的連接代號,失敗返回 false 值。
Ⅵ php 取文件後綴名幾種有效的方法
PHP中獲取文件擴展名的N種方法
從網上收羅的,基本上就以下這幾種方式:
第1種方法:
functionget_extension($file)
{
substr(strrchr($file,'.'),1);
}
第2種方法:
functionget_extension($file)
{
returnsubstr($file,strrpos($file,'.')+1);
}
第3種方法:
functionget_extension($file)
{
returnend(explode('.',$file));
}
第4種方法:
functionget_extension($file)
{
$info=pathinfo($file);
return$info['extension'];
}
第5種方法:
functionget_extension($file)
{
returnpathinfo($file,PATHINFO_EXTENSION);
}
以上幾種方式粗看了一下,好像都行,特別是1、2種方法,在我不知道pathinfo有第二個參數之前也一直在用。但是仔細考慮一下,前四種方法都有各種各樣的毛病。要想完全正確獲取文件的擴展名,必須要能處理以下三種特殊情況。
沒有文件擴展名
路徑中包含了字元.,如/home/test.d/test.txt
路徑中包含了字元.,但文件沒有擴展名。如/home/test.d/test
很明顯:1、2不能處理第三種情況,3不能正確處理第一三種情況。4可以正確處理,但是在不存在擴展名時,會發出一個警告。只有第5種方法才是最正確的方法。順便看一下pathinfo方法。官網上介紹如下:
$file_path=pathinfo('/www/htdocs/your_image.jpg');
echo"$file_path['dirname'] ";
echo"$file_path['basename'] ";
echo"$file_path['extension'] ";
echo"$file_path['filename'] ";//onlyinPHP5.2+
它會返回一個數組,包含最多四個元素,但是並不會一直有四個,比如在沒有擴展名的情況下,就不會有extension元素存在,所以第4種方法才會發現警告。但是phpinfo還支持第二個參數。可以傳遞一個常量,指定返回某一部分的數據:
PATHINFO_DIRNAME-目錄
PATHINFO_BASENAME-文件名(含擴展名)
PATHINFO_EXTENSION-擴展名
PATHINFO_FILENAME-文件名(不含擴展名,PHP>5.2)
這四個常量的值分別是1、2、4、8,剛開始我還以為可以通過或運算指定多個:
pathinfo($file,PATHINFO_EXTENSION|PATHINFO_FILENAME);
後來發現這樣不行,這只會返回幾個進行或運算常量中最小的那個。也就是四個標志位中最小位為1的常量。
Ⅶ 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
=
"http://www.bitsCN.com/index.html?id=1";
$str
=
getUrlPostfix($url);
echo
$str
.
"n";
希望本文所述對大家的php程序設計有所幫助。
Ⅷ 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 獲取url地址文件後綴
$array = pathinfo(url);
$array['extension']; 是後綴