整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          JS - 獲取文件后綴,判斷文件類型(比如是否為圖片格式)

          ,獲取文件后綴

          有時候我們需要通過文件名或者路徑,得到該文件的后綴名(擴展名),可以通過如下方式進行截取:

          //文件路徑

          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

          都可以。

          • HTML 簡介

          實例:

          <!doctype html>
          <html>
          <header>
          <meta charset="utf-8">
          <title>孫叫獸的博客</title>
          </header>
          <body>
          <h1>這是我的標題</h1>
          <p>這是我的段落</p>
          </body>
          </html>

          實例解析

          • <!DOCTYPE html> 聲明為 HTML5 文檔
          • <html> 元素是 HTML 頁面的根元素
          • <head> 元素包含了文檔的元(meta)數據,如 <meta charset=“utf-8”> 定義網頁編碼格式為 utf-8。
          • <title> 元素描述了文檔的標題
          • <body> 元素包含了可見的頁面內容
          • <h1> 元素定義一個大標題
          • <p> 元素定義一個段落

          什么是HTML?

          • HTML 是用來描述網頁的一種語言。
          • HTML 指的是超文本標記語言: HyperText Markup Language
          • HTML 不是一種編程語言,而是一種標記語言
          • 標記語言是一套標記標簽 (markup tag)
          • HTML 使用標記標簽來描述網頁
          • HTML 文檔包含了HTML 標簽及文本內容
          • HTML文檔也叫做 web 頁面
          • HTML 標簽
          • HTML 標記標簽通常被稱為 HTML

          標簽

        1. HTML 標簽是由尖括號包圍的關鍵詞,比如 <html>
        2. HTML 標簽通常是成對出現的,比如 <b> 和 </b>
        3. 標簽對中的第一個標簽是開始標簽,第二個標簽是結束標簽
        4. 開始和結束標簽也被稱為開放標簽和閉合標簽
        5. <標簽>內容</標簽>

          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 都準備好函數了!

          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 :_)


          我是 @程序員小助手 ,持續分享編程知識,歡迎關注。


          主站蜘蛛池模板: 日韩熟女精品一区二区三区 | 国产自产对白一区| 一区二区三区在线看| 一区二区三区在线观看中文字幕| 日韩成人无码一区二区三区| 春暖花开亚洲性无区一区二区| 亚洲国产一区二区视频网站| 日韩人妻一区二区三区蜜桃视频 | 精品免费AV一区二区三区| 国模无码人体一区二区| 国产品无码一区二区三区在线| 久99精品视频在线观看婷亚洲片国产一区一级在线 | 国产精品久久久久一区二区三区| 免费一区二区视频| 一区二区在线观看视频| 色窝窝无码一区二区三区色欲| 91亚洲一区二区在线观看不卡| 色狠狠一区二区三区香蕉| 日本精品夜色视频一区二区| 日韩人妻无码一区二区三区99 | 精品无码人妻一区二区三区不卡 | 国产日韩视频一区| 亚欧免费视频一区二区三区| 久久精品国产亚洲一区二区三区| 日本无码一区二区三区白峰美| 久久久久一区二区三区| 中文字幕一区二区免费| 久久国产一区二区三区| 无码少妇一区二区三区浪潮AV| 无码囯产精品一区二区免费 | 日韩在线一区视频| 日本美女一区二区三区| 亚洲AV无码一区二区三区在线观看 | 久久se精品一区精品二区国产| asmr国产一区在线| 国产亚洲一区二区精品| 色偷偷一区二区无码视频| 亚洲一区二区三区成人网站| 中文字幕一区在线观看视频| 国模无码视频一区二区三区| 亚洲熟女乱综合一区二区|