,獲取文件后綴
有時候我們需要通過文件名或者路徑,得到該文件的后綴名(擴展名),可以通過如下方式進行截取:
//文件路徑
var filePath = "file:///storage/emulated/0/opmark/User/Pic/hangge.png";
//獲取最后一個.的位置
var index= filePath.lastIndexOf(".");
//獲取后綴
var ext = filePath.substr(index+1);
//輸出結果
console.log(ext);
效果圖如下:
2,文件類型判斷
我們得到文件后綴名后,根據后綴即可判斷文件的類型(文件格式)。比如我們需要判斷一個文件是否是圖片格式,首先定義一個判斷函數:
function isAssetTypeAnImage(ext) {
return [
'png', 'jpg', 'jpeg', 'bmp', 'gif', 'webp', 'psd', 'svg', 'tiff'].
indexOf(ext.toLowerCase()) !== -1;
}
使用時只需把后綴傳入即可判斷:
//文件路徑
var filePath = "file:///storage/emulated/0/opmark/User/Pic/hangge.png";
//獲取最后一個.的位置
var index= filePath.lastIndexOf(".");
//獲取后綴
var ext = filePath.substr(index+1);
//判斷是否是圖片
console.log("該文件是否為圖片:" + isAssetTypeAnImage(ext));
效果圖如下:
原文鏈接:https://www.hangge.com/blog/cache/detail_1754.html#
TML教程
超文本標記語言(英語:HyperText Markup Language,簡稱:HTML)是一種用于創建網頁的標準標記語言。
您可以使用 HTML 來建立自己的 WEB 站點,HTML 運行在瀏覽器上,由瀏覽器來解析。
在本教程中,您將學習如何使用 HTML 來創建站點。
HTML 很容易學習!相信您能很快學會它!
本教程包含了數百個 HTML 實例。
使用本站的編輯器,您可以輕松實現在線修改 HTML,并查看實例運行結果。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>孫叫獸的博客</title>
</head>
<body>
<h1>我的第一個標題</h1>
<p>我的第一個段落。</p>
</body>
</html>
HTML 文檔的后綴名
.html
.htm
都可以。
實例:
<!doctype html>
<html>
<header>
<meta charset="utf-8">
<title>孫叫獸的博客</title>
</header>
<body>
<h1>這是我的標題</h1>
<p>這是我的段落</p>
</body>
</html>
實例解析
什么是HTML?
標簽
<標簽>內容</標簽>
html元素
“HTML 標簽” 和 “HTML 元素” 通常都是描述同樣的意思.
但是嚴格來講, 一個 HTML 元素包含了開始標簽與結束標簽,如下實例:
HTML 元素:
<p>這是一個段落</p>
web瀏覽器
Web瀏覽器(如谷歌瀏覽器,Internet Explorer,Firefox,Safari)是用于讀取HTML文件,并將其作為網頁顯示。
瀏覽器并不是直接顯示的HTML標簽,但可以使用標簽來決定如何展現HTML頁面的內容給用戶
html網頁結構
<html>
<head>
<title>頁面標題</title>
</head>
<body>
<h1>這是一個標題</h1>
<p>這是一個段落。</p>
<p>這是另外一個段落。</p>
</body>
</html>
html的版本:
<!DOCTYPE>聲明
<!DOCTYPE>聲明有助于瀏覽器中正確顯示網頁。
網絡上有很多不同的文件,如果能夠正確聲明HTML的版本,瀏覽器就能正確顯示網頁內容。
doctype 聲明是不區分大小寫的,以下方式均可:
<!DOCTYPE html>
<!DOCTYPE HTML>
<!doctype html>
<!Doctype Html>
html5
<!DOCTYPE html>
html4
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML4 Transitional//EN""
http://www.w3.org/TR/html4/loose.dtd">
xhtml1.0
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
中文編碼
目前在大部分瀏覽器中,直接輸出中文會出現中文亂碼的情況,這時候我們就需要在頭部將字符聲明為 UTF-8。
通常文件擴展名在Linux系統上是沒有意義的,僅是用來標記該文件屬于哪種類型?但是大多數,我們從瀏覽器上訪問Web程序。提交給服務器的文件是帶有擴展名的,比如,圖片上傳,文件上傳就是比較經典的一些應用。
那么在編程中如何準確獲取文件的擴展名,并根據分類做相應的處理呢?實現的方法有很多。今天我們給大家介紹一些最佳實踐。
獲取一張上傳圖片的擴展名,有些同學可能會這樣寫:
$userfile_name = $_FILES['image']['name'];
$userfile_extn = explode(".", strtolower($_FILES['image']['name']));
那么直接對文件名進行 explode ,裁切出來的是一個屬組。假設我們管控上傳文件的最后一個字段是文件的擴展名,那么該文件的擴展名就是 end($userfile_extn)。
這樣的實現方法完美嗎?有更好的嗎?
如果文件名字符串比較特殊,這樣的程序會不會 explode 失敗返回 False?從而拋出異常?
有可能會!所以這個寫法是有 bug 的。
PHP 是一個工具箱,內置了無數實用的函數。有一個函數就是專門設計來解決這個需求的:pathinfo。下面是用法:
$path = $_FILES['image']['name'];
$ext = pathinfo($path, PATHINFO_EXTENSION);
瞬間就感覺香多了。
還是得多看文檔,我把這個函數的參數和用法貼在下面。
所以說盡量不要重復造輪子。官方寫好的輪子拿來用就是,它就靜靜的躺在幫助手冊里等著你去發現。
當然程序都是活的。因為我開發者,給出別的解決方案無可厚非。用 PHP 自帶的函數實現這個功能本來就有 N 多個辦法。下面我們貼幾個看起來還不錯的輪子。最起碼容錯性比最上面的那個寫法高一些。
比如使用 strrpos + substr 實現的:
$userfile_name = $_FILES['image']['name'];
$userfile_extn = substr($userfile_name, strrpos($userfile_name, '.')+1);
通過查找“.”所在的位置,并向后一位開始截取到字符串末尾。這個寫法避免了 explored 截取數組失敗,從而返回 false 這個 bug。
再比如,有開發者人為你只是要圖片的擴展名,那么大可以直接使用 image 相關的函數 getimagesize:
$image = getimagesize($_FILES['image']['tmp_name']);
getimagesize() 函數將測定任何 GIF,JPG,PNG,SWF,SWC,PSD,TIFF,BMP,IFF,JP2,JPX,JB2,JPC,XBM 或 WBMP 圖像文件的大小并返回圖像的尺寸以及文件類型和一個可以用于普通 HTML 文件中 IMG 標記中的 height/width 文本字符串。
如果不能訪問 filename 指定的圖像或者其不是有效的圖像,getimagesize() 將返回 FALSE 并產生一條 E_WARNING 級的錯誤。
上述寫法中,如果 $image 不為 false,那么就是一個屬組,其中鍵 mime 返回的就是圖片文件類型 image/jpeg 這樣的字符串。
但是沒什么LUAN用!
比較來比較去,還是 pathinfo 最香。
因為這就是 PHP 官方給定的方式,為啥不用?
Happy coding :_)
我是 @程序員小助手 ,持續分享編程知識,歡迎關注。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。