整合營(yíng)銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          彈出層插件 jqgrid的使用

          彈出層插件 jqgrid的使用

          .引用相關(guān)頭文件

          引入CSS:

          <link href="Scripts/jquery-ui-1.8.1.custom.css" rel="stylesheet" type="text/css" />

          <link href="Scripts/ui.jqgrid.css" rel="stylesheet" type="text/css" />

          引入JS:

          <script src="Scripts/jquery-1.5.1.js" type="text/javascript"></script>

          <script src="Scripts/jquery-ui.min.js" type="text/javascript"></script>

          <script src="Scripts/grid.locale-en.js" type="text/javascript"></script>

          <script src="Scripts/jquery.jqGrid.min.js" type="text/javascript"></script>

          因?yàn)閖qGrid3.6及以后的版本集成了jQuery UI,所以,此處需要導(dǎo)入U(xiǎn)I相關(guān)js和css。另外grid.locale-en.js這個(gè)語(yǔ)言文件必須在jquery.jqGrid.min.js之前加載,否則會(huì)出問(wèn)題。

          2.將jqgrid加入頁(yè)面中

          根據(jù)jqGrid的文檔,要想生成一個(gè)jqGrid,最直接的方法就是:

          $("#list").jqGrid(options);

          其中l(wèi)ist是頁(yè)面上的一個(gè)table:<table id="list"></table>

          下面是一個(gè)簡(jiǎn)單的例子:

          <script type="text/javascript">

          $(document).ready(function () {

          jQuery("#list").jqGrid({

          url: 'Handler.ashx',

          datatype: "json",

          mtype: 'GET',

          colNames: ['SalesReasonID', 'Name', 'ReasonType', 'ModifiedDate'],

          colModel: [

          { name: 'SalesReasonID', index: 'SalesReasonID', width: 40, align: "left", editable: true },

          { name: 'Name', index: 'Name', width: 100, align: "center" },

          { name: 'ReasonType', index: 'ReasonType', width: 100, align: "center" },

          { name: 'ModifiedDate', index: 'ModifiedDate', width: 150, align: "center", search: false }

          ],

          rowList: [10, 20, 30],

          sortname: 'SalesReasonID',

          viewrecords: true,

          sortorder: "desc",

          jsonReader: {

          root: "griddata",

          total: "totalpages",

          page: "currpage",

          records: "totalrecords",

          repeatitems: false

          },

          pager: jQuery('#pager'),

          rowNum: 5,

          altclass: 'altRowsColour',

          //width: 'auto',

          width: '500',

          height: 'auto',

          caption: "DemoGrid"

          }).navGrid('#pager', { add: true, edit: true, del: true,search:false,refresh:false }); ;

          })

          二、 jqgrid的重要選項(xiàng)

          具體的options參考,可以訪問(wèn)jqGrid文檔關(guān)于option的章節(jié)(http://www.trirand.com/jqgridwiki/doku.php?id=wiki:options)。其中有幾個(gè)是比較常用的,重點(diǎn)介紹一下:

          • url :jqGrid控件通過(guò)這個(gè)參數(shù)得到需要顯示的數(shù)據(jù),具體的返回值可以使XML也可以是Json。
          • datatype :這個(gè)參數(shù)用于設(shè)定將要得到的數(shù)據(jù)類型。類型包括:json 、xml、xmlstring、local、javascript、function。
          • mtype : 定義使用哪種方法發(fā)起請(qǐng)求,GET或者POST。
          • height :Grid的高度,可以接受數(shù)字、%值、auto,默認(rèn)值為150。
          • width :Grid的寬度,如果未設(shè)置,則寬度應(yīng)為所有列寬的之和;如果設(shè)置了寬度,則每列的寬度將會(huì)根據(jù)shrinkToFit選項(xiàng)的設(shè)置,進(jìn)行設(shè)置。
          • shrinkToFit :此選項(xiàng)用于根據(jù)width計(jì)算每列寬度的算法。默認(rèn)值為true。如果shrinkToFit為true且設(shè)置了width值,則每列寬度會(huì)根據(jù)width成比例縮放;如果shrinkToFit為false且設(shè)置了width值,則每列的寬度不會(huì)成比例縮放,而是保持原有設(shè)置,而Grid將會(huì)有水平滾動(dòng)條。
          • autowidth :默認(rèn)值為false。如果設(shè)為true,則Grid的寬度會(huì)根據(jù)父容器的寬度自動(dòng)重算。重算僅發(fā)生在Grid初始化的階段;如果當(dāng)父容器尺寸變化了,同時(shí)也需要變化Grid的尺寸的話,則需要在自己的代碼中調(diào)用setGridWidth方法來(lái)完成。
          • pager :定義頁(yè)碼控制條Page Bar,在上面的例子中是用一個(gè)div(<div id=”pager”></div>)來(lái)放置的。
          • sortname :指定默認(rèn)的排序列,可以是列名也可以是數(shù)字。此參數(shù)會(huì)在被傳遞到Server端。
          • viewrecords :設(shè)置是否在Pager Bar顯示所有記錄的總數(shù)。
          • caption :設(shè)置Grid表格的標(biāo)題,如果未設(shè)置,則標(biāo)題區(qū)域不顯示。
          • rowNum :用于設(shè)置Grid中一次顯示的行數(shù),默認(rèn)值為20。正是這個(gè)選項(xiàng)將參數(shù)rows(prmNames中設(shè)置的)通過(guò)url選項(xiàng)設(shè)置的鏈接傳遞到Server。注意如果Server返回的數(shù)據(jù)行數(shù)超過(guò)了rowNum的設(shè)定,則Grid也只顯示rowNum設(shè)定的行數(shù)。
          • rowList :一個(gè)數(shù)組,用于設(shè)置Grid可以接受的rowNum值。例如[10,20,30]。
          • colNames :字符串?dāng)?shù)組,用于指定各列的題頭文本,與列的順序是對(duì)應(yīng)的。
          • colModel :最重要的數(shù)組之一,用于設(shè)定各列的參數(shù)。(稍后詳述)
          • prmNames :這是一個(gè)數(shù)組,用于設(shè)置jqGrid將要向Server傳遞的參數(shù)名稱。(稍后詳述)
          • jsonReader :這又是一個(gè)數(shù)組,用來(lái)設(shè)定如何解析從Server端發(fā)回來(lái)的json數(shù)據(jù)。(稍后詳述)

          2.1 prmNames選項(xiàng)

          prmNames是jqGrid的一個(gè)重要選項(xiàng),用于設(shè)置jqGrid將要向Server傳遞的參數(shù)名稱。其默認(rèn)值為:

          prmNames : {

          page:"page", // 表示請(qǐng)求頁(yè)碼的參數(shù)名稱

          rows:"rows", // 表示請(qǐng)求行數(shù)的參數(shù)名稱

          sort: "sidx", // 表示用于排序的列名的參數(shù)名稱

          order: "sord", // 表示采用的排序方式的參數(shù)名稱

          search:"_search", // 表示是否是搜索請(qǐng)求的參數(shù)名稱

          nd:"nd", // 表示已經(jīng)發(fā)送請(qǐng)求的次數(shù)的參數(shù)名稱

          id:"id", // 表示當(dāng)在編輯數(shù)據(jù)模塊中發(fā)送數(shù)據(jù)時(shí),使用的id的名稱

          oper:"oper", // operation參數(shù)名稱

          editoper:"edit", // 當(dāng)在edit模式中提交數(shù)據(jù)時(shí),操作的名稱

          addoper:"add", // 當(dāng)在add模式中提交數(shù)據(jù)時(shí),操作的名稱

          deloper:"del", // 當(dāng)在delete模式中提交數(shù)據(jù)時(shí),操作的名稱

          subgridid:"id", // 當(dāng)點(diǎn)擊以載入數(shù)據(jù)到子表時(shí),傳遞的數(shù)據(jù)名稱

          npage: null,

          totalrows:"totalrows" // 表示需從Server得到總共多少行數(shù)據(jù)的參數(shù)名稱,參見jqGrid選項(xiàng)中的rowTotal

          }

          2.2 jsonReader選項(xiàng)

          jsonReader是jqGrid的一個(gè)重要選項(xiàng),用于設(shè)置如何解析從Server端發(fā)回來(lái)的json數(shù)據(jù),如果Server返回的是xml數(shù)據(jù),則對(duì)應(yīng)的使用xmlReader來(lái)解析。jsonReader的默認(rèn)值為:

          jsonReader : {

          root: "rows", // json中代表實(shí)際模型數(shù)據(jù)的入口

          page: "page", // json中代表當(dāng)前頁(yè)碼的數(shù)據(jù)

          total: "total", // json中代表頁(yè)碼總數(shù)的數(shù)據(jù)

          records: "records", // json中代表數(shù)據(jù)行總數(shù)的數(shù)據(jù)

          repeatitems: true, // 如果設(shè)為false,則jqGrid在解析json時(shí),會(huì)根據(jù)name來(lái)搜索對(duì)應(yīng)的數(shù)據(jù)元素(即可以json中元素可以不按順序);而所使用的name是來(lái)自于colModel中的name設(shè)定。

          cell: "cell",

          id: "id",

          userdata: "userdata",

          subgrid: {

          root:"rows",

          repeatitems: true,

          cell:"cell"

          }

          }

          假如有下面一個(gè)json字符串:

          {"totalpages":"3","currpage":"1","totalrecords":"11","griddata":[{"SalesReasonID":"1","Name":"Price","ReasonType":"Other","ModifiedDate":"1998年6月1日"},{"SalesReasonID":"2","Name":"On Promotion","ReasonType":"Promotion","ModifiedDate":"1998年6月1日"},{"SalesReasonID":"3","Name":"Magazine Advertisement","ReasonType":"Marketing","ModifiedDate":"1998年6月1日"},{"SalesReasonID":"4","Name":"Television Advertisement","ReasonType":"Marketing","ModifiedDate":"1998年6月1日"},{"SalesReasonID":"5","Name":"Manufacturer","ReasonType":"Other","ModifiedDate":"1998年6月1日"}]}

          其對(duì)應(yīng)的jsonReader為:jsonReader: {

          root: "griddata",

          total: "totalpages",

          page: "currpage",

          records: "totalrecords",

          repeatitems: false

          }

          注:cell、id在repeatitems為true時(shí)可以用到,即每一個(gè)記錄是由一對(duì)id和cell組合而成,即可以適用另一種json結(jié)構(gòu)。援引文檔中的例子:

          repeatitems為true時(shí):

          jQuery("#gridid").jqGrid({

          ...

          jsonReader : {

          root:"invdata",

          page: "currpage",

          total: "totalpages",

          records: "totalrecords"

          },

          ...

          });

          json結(jié)構(gòu)為:

          {

          "totalpages": "xxx",

          "currpage": "yyy",

          "totalrecords": "zzz",

          "invdata" : [

          {"id" :"1", "cell" :["cell11", "cell12", "cell13"]}, // cell中不需要各列的name,只要值就OK了,但是需要保持對(duì)應(yīng)

          {"id" :"2", "cell" :["cell21", "cell22", "cell23"]},

          ...

          ]

          }

          repeatitems為false時(shí):

          jQuery("#gridid").jqGrid({

          ...

          jsonReader : {

          root:"invdata",

          page: "currpage",

          total: "totalpages",

          records: "totalrecords",

          repeatitems: false,

          id: "0"

          },

          ...

          });

          json結(jié)構(gòu)為:

          {

          "totalpages" : "xxx",

          "currpage" : "yyy",

          "totalrecords" : "zzz",

          "invdata" : [

          {"invid" : "1","invdate":"cell11", "amount" :"cell12", "tax" :"cell13", "total" :"1234", "note" :"somenote"}, // 數(shù)據(jù)中需要各列的name,但是可以不按列的順序

          {"invid" : "2","invdate":"cell21", "amount" :"cell22", "tax" :"cell23", "total" :"2345", "note" :"some note"},

          ...

          ]

          }

          2.3 colModel的重要選項(xiàng)

          colModel也有許多非常重要的選項(xiàng),在使用搜索、排序等方面都會(huì)用到。這里先只說(shuō)說(shuō)最基本的。

          • name :為Grid中的每個(gè)列設(shè)置唯一的名稱,這是一個(gè)必需選項(xiàng),其中保留字包括subgrid、cb、rn。
          • index :設(shè)置排序時(shí)所使用的索引名稱,這個(gè)index名稱會(huì)作為sidx參數(shù)(prmNames中設(shè)置的)傳遞到Server。
          • label :當(dāng)jqGrid的colNames選項(xiàng)數(shù)組為空時(shí),為各列指定題頭。如果colNames和此項(xiàng)都為空時(shí),則name選項(xiàng)值會(huì)成為題頭。
          • width :設(shè)置列的寬度,目前只能接受以px為單位的數(shù)值,默認(rèn)為150。
          • sortable :設(shè)置該列是否可以排序,默認(rèn)為true。
          • search :設(shè)置該列是否可以被列為搜索條件,默認(rèn)為true。
          • resizable :設(shè)置列是否可以變更尺寸,默認(rèn)為true。
          • hidden :設(shè)置此列初始化時(shí)是否為隱藏狀態(tài),默認(rèn)為false。
          • formatter :預(yù)設(shè)類型或用來(lái)格式化該列的自定義函數(shù)名。常用預(yù)設(shè)格式有:integer、date、currency、number等(具體參見文檔 )。

          三、 注意事項(xiàng)

          1. 動(dòng)態(tài)改變Add Form或者Edit Form中的select的內(nèi)容,如:改變下圖中的Comparator下拉中的內(nèi)容。

          $("#list_d").navGrid('#pager_d',{add:true,edit:true,del:true,search:false,refresh:false},

          {

          checkOnSubmit:false, closeAfterEdit: true,recreateForm:true,

          beforeInitData:function(formid){

          initComparator();

          },

          beforeShowForm: function(formid){

          $("#list_d").jqGrid('setColProp', 'Name', { editrules:{required:false},});

          $('#tr_Name', formid).hide();

          }

          },//edit

          {},//add

          {}//del

          beforeInitData, beforeShowForm在每次點(diǎn)擊編輯的時(shí)候都會(huì)執(zhí)行。initComparator的作用是通過(guò)ajax獲取數(shù)據(jù),然后利用$("#list_d").jqGrid('setColProp', 'Comparator', { editoptions: { value: valueString} });來(lái)設(shè)置Comparator下拉中的內(nèi)容。其中valueString的格式如下’ equal to: equal to; not equal to: not equal to’。鍵值之間用冒號(hào)隔開,2項(xiàng)之間用分號(hào)隔開。注意:把recreateForm設(shè)為true,否則'setColProp'只在第一次調(diào)用時(shí)有效。

          2. var rowNum=parseInt($(this).getGridParam("records"), 10); 得到數(shù)據(jù)條數(shù)。

          3. jQuery("#list_d").clearGridData();清空數(shù)據(jù)。

          4. jQuery("#list").getCell(ids,"Key");獲取第ids行的key列。

          5. $("#list").jqGrid('setSelection', "1");選中第一行。放在loadComplete:中在gird加載完成的時(shí)候自動(dòng)選中第一行。loadComplete:function(data){$("#list").jqGrid('setSelection', "1");

          }

          6. 對(duì)于像1中的可編輯的字段,可以設(shè)定rule,參見http://www.trirand.com/jqgridwiki/doku.php?id=wiki:common_rules#editrules

          7. 修改Option,以URL為例

          jQuery("#list_d").jqGrid('setGridParam',{url:"xxx.aspx",page:1}).trigger('reloadGrid');

          HP 大文件上傳解決方案(500M以上),HTML+PHP超大視頻上傳實(shí)例,PHP批量上傳大文件技巧,PHP批量上傳大文件,PHP實(shí)現(xiàn)批量上傳圖片的技巧,PHP結(jié)合WEB UPLOADER插件實(shí)現(xiàn)分段,PHP結(jié)合WEB UPLOADER插件實(shí)現(xiàn)切片上傳,PHP結(jié)合WEB UPLOADER插件實(shí)現(xiàn)斷點(diǎn)續(xù)傳,PHP結(jié)合WEB UPLOADER插件實(shí)現(xiàn)大文件上傳,PHP結(jié)合UPLOADER插件實(shí)現(xiàn)分片上傳文件,PHP結(jié)合百度UPLOADER插件實(shí)現(xiàn)分片上傳文件,PHP結(jié)合WEB UPLOADER插件實(shí)現(xiàn)分片上傳文件,前端HTML5,JS,JQ,VUE2,VUE3,React,

          前端的話都有可能用到,VUE2,VUE3,HTML5,也不一定是VUE, 公司內(nèi)部有自己的產(chǎn)品,有些產(chǎn)品是之前開發(fā)的,沒有用VUE,而是用的普通的HTML模板,用的也還好。

          后端PHP5,PHP6,PHP7,PHP8,ThinkPHP,

          之前在網(wǎng)上也搜索過(guò)相關(guān)的資料,在論壇里面也與網(wǎng)友交流過(guò),但是都不太令人滿意。

          客戶是深圳這邊的一家企業(yè)。

          webuploader的組件公司研發(fā)部的同事也調(diào)研過(guò),研究過(guò)他的實(shí)現(xiàn),實(shí)際上他就是對(duì)Flash和HTML5進(jìn)行了一個(gè)封裝,本質(zhì)還是調(diào)的HTML5的API,兼容性不是特別好。可擴(kuò)展性也比較差,可維護(hù)性就更不用說(shuō)了,之前公司項(xiàng)目遇到過(guò)坑,到現(xiàn)在連webuploader開發(fā)人員都聯(lián)系不上。想找他們尋求一點(diǎn)技術(shù)支持的幫助,真的是想都不要想。公司這一塊也愿意付費(fèi),就是付費(fèi)尋求的技術(shù)支持,也不行。這一點(diǎn)真的讓哥幾個(gè)給整郁悶了。領(lǐng)導(dǎo)也不太滿意,所以還是找有技術(shù)支持的產(chǎn)品。研發(fā)部的同事稱這些項(xiàng)目是免費(fèi)坑人項(xiàng)目。

          服務(wù)器支持Linux,Windows,macOS,CentOS,中標(biāo)麒麟,銀河麒麟,統(tǒng)信,龍芯,華為鯤鵬,

          數(shù)據(jù)庫(kù)支持MySQL,達(dá)夢(mèng)數(shù)據(jù)庫(kù),人大金倉(cāng)

          需要提供前端源碼,后端源碼,控件源碼

          需要提供7*24小時(shí)技術(shù)支持,長(zhǎng)期技術(shù)支持,長(zhǎng)期維護(hù)服務(wù)

          需要提供手機(jī),QQ,微信,企業(yè)微信,電子郵箱等聯(lián)系方式

          需要支持包含IE在內(nèi)的全部瀏覽器

          終端需要支持Windows,macOS,Linux,信創(chuàng)國(guó)產(chǎn)化環(huán)境,中標(biāo)麒麟,銀河麒麟,統(tǒng)信UOS,龍芯,華為

          功能需要支持10G,50G,100G大文件上傳和斷點(diǎn)續(xù)傳,刷新續(xù)傳,重啟續(xù)傳

          支持超大文件分片,分段,分塊,分割上傳下載,斷點(diǎn)續(xù)傳

          支持文件夾上傳,下載斷點(diǎn)續(xù)傳,支持文件夾層級(jí)結(jié)構(gòu),層級(jí)結(jié)構(gòu)信息保存到數(shù)據(jù)庫(kù),下載的時(shí)候同樣保留層級(jí)結(jié)構(gòu)

          支持加密上傳,下載加密,端到端加密,國(guó)密SM4加密算法,數(shù)據(jù)加密傳輸,傳輸過(guò)程中要保證數(shù)據(jù)是加密的。版本:6.5.40

          代碼:https://gitee.com/xproer/up6-php/tree/6.5.40/

          安裝環(huán)境

          PHP:7.2.14

          調(diào)整塊大小

          NOSQL

          NOSQL不需要任何配置,可以直接訪問(wèn)測(cè)試

          SQL

          創(chuàng)建數(shù)據(jù)庫(kù)

          您可以直接復(fù)制腳本進(jìn)行創(chuàng)建

          配置數(shù)據(jù)庫(kù)連接

          6.安裝依賴

          訪問(wèn)頁(yè)面進(jìn)行測(cè)試

          數(shù)據(jù)表中的數(shù)據(jù)

          相關(guān)參考:

          文件保存位置

          php5教程,

          源碼工程文檔:https://drive.weixin.qq.com/s?k=ACoAYgezAAw1dWofra

          源碼報(bào)價(jià)單:https://drive.weixin.qq.com/s?k=ACoAYgezAAwoiul8gl

          OEM版報(bào)價(jià)單:https://drive.weixin.qq.com/s?k=ACoAYgezAAwuzp4W0a
          控件源碼下載:https://drive.weixin.qq.com/s?k=ACoAYgezAAwbdKCskc

          文件系統(tǒng)處理的作用:

          1. 所有的項(xiàng)目離不開文件處理

          2. 可以用文件長(zhǎng)時(shí)間保存數(shù)據(jù)

          3. 建立緩存, 服務(wù)器中文件操作

          文件處理

          1. 文件類型

          以Linux為模型的, 在Windows只能獲取file, dir或unknow 三種類型

          在Linux/Unix下, block, char, dir, fifo, file, link, unknown和種型

          block :塊設(shè)置文件,磁盤分區(qū),軟驅(qū), cd-rom等

          char: 字符設(shè)備,I/O 以字符為單位, 鍵盤,打印機(jī)等

          dir: 目錄也是文件的一種

          fifo:

          file:

          link:

          unknown

          filetype("目錄或文件名")

          is_array();

          is_int();

          is_string();

          is_null;

          is_bool();

          is_dir -- 判斷給定文件名是否是一個(gè)目錄

          is_executable -- 判斷給定文件名是否可執(zhí)行

          is_file -- 判斷給定文件名是否為一個(gè)正常的文件

          is_link -- 判斷給定文件名是否為一個(gè)符號(hào)連接

          is_readable -- 判斷給定文件名是否可讀

          is_uploaded_file -- 判斷文件是否是通過(guò) HTTP POST 上傳的

          is_writable -- 判斷給定的文件名是否可寫

          is_writeable -- is_writable() 的別名


          2. 文件的屬性

          file_exists();

          filesize();

          is_readable();

          is_writeable();

          filectime();

          filemtime();

          fileactime();

          stat();

          3. 和文件路徑相關(guān)的函數(shù)

          相對(duì)路徑:相對(duì)于當(dāng)前目錄的上級(jí)和下級(jí)目錄

          . 當(dāng)前目錄

          .. 上一級(jí)目錄

          ./php/apache/index.php

          php/apahce/index.php

          login.php

          ./login.php

          ../images/tpl/logo.gif


          路徑分隔符號(hào)

          linux/Unix "/"

          windows "\"

          DIRECTORY_SEPARATOR 為不同平臺(tái),在Windows \ Linux /

          不管是什么操作系統(tǒng)PHP的目錄分割符號(hào)都支技 / (Linux)

          在PHP和Apache配置文件中如果需要指定目錄,也使用/作為目錄符號(hào)

          絕對(duì)路徑:

          / 根路徑

          /images/index.php

          指的操作系統(tǒng)的根

          指的是存放網(wǎng)站的文檔根目錄

          分情況

          如果是在服務(wù)器中執(zhí)行(通過(guò)PHP文件處理函數(shù)執(zhí)行)路徑 則 “根”指的就是操作系統(tǒng)的根

          如果程序是下載的客戶端,再訪問(wèn)服務(wù)器中的文件時(shí),只有通過(guò)Apache訪問(wèn),“根”也就指的是文檔根目錄

          http://www.xsphp.com/logo.gif


          basename(url)

          dirname(url)

          pathinfo(url)


          4. 文件的操作相關(guān)的函數(shù)

          創(chuàng)建文件 touch("文件名")

          刪除文件 unlink("文件路徑");

          移動(dòng)文件 為文件重新命名 rename("當(dāng)前文件路徑", “目錄為文件路徑”)

          復(fù)制文件 copy("當(dāng)前", “目標(biāo)”);

          一定要有PHP執(zhí)行這個(gè)文件權(quán)限, Apache, 一個(gè)用戶


          和權(quán)限設(shè)計(jì)有關(guān)的函數(shù)


          ls -l 或 ll

          _rwxrwxrwx 777

          _ 類型 _文件 d 表示是目錄 l b

          rwx 表這個(gè)文件的擁有者 r讀 w寫 x執(zhí)行

          rwx 表這個(gè)文件的擁有者所在的組 r讀 w寫 x執(zhí)行

          rwx 其它用戶對(duì)這個(gè)為文件的權(quán)限 r讀 w寫 x執(zhí)行

          r 4

          w 2

          x 1

          7 7 7 4+2+1 4+2+1 4+2+1

          rwx rwx rwx

          644

          4+2 4 4

          rw_ r__ r__

          754

          chmod u=rwx,g=rw,o=x

          chmod 777 demo.php

          chmod 644 demo.html

          chown mysql demo.php

          chgrp apache demo.php

          chgrp -- 改變文件所屬的組

          chmod -- 改變文件模式

          chown -- 改變文件的所有者

          filegroup -- 取得文件的組

          fileowner -- 取得文件的所有者


          5. 文件的打開與關(guān)閉(讀文件中的內(nèi)容, 向文件中寫內(nèi)容)

          讀取文件中的內(nèi)容

          file_get_contents(); //php5以上

          file()

          readfile();

          不足:全部讀取, 不能讀取部分,也不能指定的區(qū)域

          fopen(URL, mode)

          本地文件:

          ./test.txt

          c:/appserv/www/index.html

          /usr/local/apahce/index.html

          遠(yuǎn)程:

          http://www.baidu.com

          fopen("./test.txt", "a+")

          fwrite fread

          r , 以只讀模式打開文件

          r+ 寫

          w, 以只寫的方式打開,如果文件不存在,則創(chuàng)建這個(gè)文件,并寫放內(nèi)容,如果文件存在,并原來(lái)有內(nèi)容,則會(huì)清除原文件中所有內(nèi)容,再寫入(打開已有的重要文件)

          w+ 除了可以寫用fwrite, 還可以讀fread

          a 以只寫的方式打開,如果文件不存在,則創(chuàng)建這個(gè)文件,并寫放內(nèi)容,如果文件存在,并原來(lái)有內(nèi)容,則不清除原有文件內(nèi)容,再原有文件內(nèi)容的最后寫入新內(nèi)容,(追加)

          a+除了可以寫用fwrite, 還可以讀fread

          b 以二進(jìn)制模式打開文件(圖,電影)

          t 以文本模式打開文件

          fread() // 第一個(gè)是讀取指定長(zhǎng)度的字符

          fgetc() //一次從文件中讀取一個(gè)字符

          fgets() //一次從文件中讀取一行字符


          feof($file); 如果讀取文件出錯(cuò),或到文件結(jié)束,則返回真

          寫入文件

          file_put_contents(“URL”, “內(nèi)容字符串”); //php5以上

          如果文件不存在,則創(chuàng)建,并寫入內(nèi)容

          如果文件存在,則刪除文件中的內(nèi)容,重新寫放

          不足: 不能以追加的方式寫,也不能加鎖

          fopen()

          fwrite() 別名 fputs

          第一個(gè)參數(shù)是文件資源(fopen返回來(lái)的),第個(gè)參數(shù)是寫的內(nèi)容


          本地文件:

          ./test.txt

          c:/appserv/www/index.html

          /usr/local/apahce/index.html

          遠(yuǎn)程:

          http://www.baidu.com

          http://www.163.com

          ftp://user@pass:www.baidu.com/index.php

          6. 文件內(nèi)部移動(dòng)指針

          ftell($file) //返回當(dāng)前文件針的位置

          fseek($file, 10);

          fread();

          rewind();


          7. 文件的鎖定一些機(jī)制處理


          目錄的處理

          opendir()

          readdir()

          closedir()

          rewinddir()

          創(chuàng)建目錄

          mkdir(); //創(chuàng)建一個(gè)空目錄

          刪除目錄

          rmdir(); //只可以刪除空目錄


          主站蜘蛛池模板: 免费无码一区二区三区蜜桃| 少妇无码一区二区三区| 一区二区三区午夜| 性色av一区二区三区夜夜嗨| 国产伦精品一区二区三区免费迷| 国产美女在线一区二区三区| 国模吧无码一区二区三区| 国产一区二区在线视频播放| 成人免费视频一区| 中文乱码字幕高清一区二区| 精品无码人妻一区二区三区品| 一区二区乱子伦在线播放| 超清无码一区二区三区| 国产在线一区二区在线视频| 国产精品视频一区二区三区不卡| 福利片福利一区二区三区| 秋霞电影网一区二区三区| 日本精品夜色视频一区二区 | 黄桃AV无码免费一区二区三区| 国产伦精品一区二区三区精品| 午夜一区二区在线观看| 波多野结衣AV一区二区三区中文| 亚洲爆乳精品无码一区二区| 精品亚洲AV无码一区二区| 午夜影院一区二区| 精产国品一区二区三产区| 欧美日韩综合一区二区三区| 色婷婷av一区二区三区仙踪林| 在线观看一区二区三区视频| 天天躁日日躁狠狠躁一区| 日本丰满少妇一区二区三区| 在线精品国产一区二区三区 | 色噜噜狠狠一区二区三区果冻| 色欲精品国产一区二区三区AV| 91福利一区二区| 天堂va视频一区二区| 无码精品人妻一区| 亚洲福利视频一区| 亚洲av日韩综合一区二区三区| 国产视频一区二区在线观看| 国产福利电影一区二区三区,亚洲国模精品一区 |