很有用的文件操作php函數_PHP教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:解讀php生成靜態頁面的簡單實例
      一個簡單的實例: 新聞模版文件news_tmp.html: html head title{title}/title meta http-equiv=Content-Type content=text/html; charset=gb2312 /head body TABLE border=0 width=767 cellspacing=0 cellpadding=5 TR TD div align=center{news_ti

      文件讀取函式
      //文件讀取函式
      function PHP_Read(file_name) {
      fd=fopen(file_name,r);
      while(bufline=fgets(fd, 4096)){
      buf.=bufline;
      }
      fclose(fd);
      return buf;
      }
      ?>

      文件寫入函式

      //文件寫入函式
      function PHP_Write(file_name,data,method="w") {
      filenum=@fopen(file_name,method);
      flock(filenum,LOCK_EX);
      file_data=fwrite(filenum,data);
      fclose(filenum);
      return file_data;
      }
      ?>

      靜態頁面生成函式
      //靜態頁面生成函式
      function phptohtm(filefrom,fileto,u2u=1){
      if(u2u==1){
      data=PHP_Read(filefrom);
      }else{
      data=filefrom;
      }
      PHP_Write(fileto,data);
      return true;
      }
      ?>

      指定條件信息數量檢索函式

      //指定條件信息數量檢索函式
      function rec_exist(table,where){
      query="select count(*) as num from table ".where;
      result=mysql_query(query) or die(nerror(1));
      rowcount=mysql_fetch_array(result);
      num=rowcount["num"];
      if (num==0){
      return false;
      }
      return num;
      }
      ?>
      目錄刪除函式
      //目錄刪除函式
      function del_DIR(directory){
      mydir=dir(directory);
      while(file=mydir->read()){
      if((is_dir("directory/file")) AND (file!=".") AND (file!="..")){
      del_DIR("directory/file");
      }else{
      if((file!=".") AND (file!="..")){
      unlink("directory/file");
      //echo "unlink directory/file ok
      ";
      }
      }
      }
      mydir->close();
      rmdir(directory);
      //echo "rmdir directory ok
      ";
      }
      ?>

      目錄名稱合法性檢測函式

      //目錄名稱合法性檢測
      function isen(str){
      ret="";
      for(i=0;i p=ord(substr(str,i,1));
      if((p<48 & p!=45 & p!=46) || (p>57 & p<65) || (p>90 & p<97 & p!=95) || p>122){
      nerror("不符合規范!");
      }
      ret.=chr(p);
      }
      return ret;
      }
      ?>
      分頁函式

      //分頁函式
      function splitlist(HALT,LRLIST,ECHOCNT,paper,table,where,page_id,userid){
      global splitstr,sumcnt;
      if(paper=="" || sumcnt==""){
      query = "select count(*) as num from table where";
      result = mysql_query(query);
      row = mysql_fetch_array(result);
      sumcnt=row["num"];
      if(sumcnt==0){
      nerror("該版內還沒有選擇發布新聞 !");
      }
      paper=1;
      }
      sumpaper=(sumcnt-sumcnt%ECHOCNT)/ECHOCNT;
      if((sumcnt%ECHOCNT)!=0) sumpaper+=1;
      if(sumpaper==1 && HALT==0) return(where);
      enwhere=base64_encode(base64_encode(where));
      if((LRLIST*2+1) < sumpaper){
      if((paper-LRLIST) < 2){
      tract=1;
      sub=LRLIST*2+1;
      }else if((paper+LRLIST) >= sumpaper){
      tract=sumpaper-(LRLIST*2);
      sub=sumpaper;
      }else{
      tract=paper-LRLIST;
      sub=paper+LRLIST;
      }
      }else{
      tract=1;
      sub=sumpaper;
      }
      uppaper=paper-1;
      downpaper=paper+1;
      startcnt=(paper-1)*ECHOCNT;
      where.=" limit { startcnt },{ ECHOCNT }";
      if(tract > 1) { splitstr="【 << "; }
      else splitstr="【 << ";
      for(i=tract;i<=sub;i++){
      if (i!=paper) splitstr.="".i." ";
      else splitstr.="".i." ";
      }
      if (sub!=sumpaper) splitstr.=">> 】";
      else splitstr.=">> 】";
      return(where);
      }
      ?>

      關于分頁函式的使用說明


      /*
      #### 檢索分頁函式 ####
      Int HALT - 檢索結果僅分1頁時是否(1/0)顯示頁碼條
      Int LRLIST - (頁碼條顯示頁碼數-1)/2
      Int ECHOCNT - 檢索時每頁顯示記錄的數量
      Int paper - 頁數,預提取:paper=HTTP_GET_VARS[paper];
      Varchar table - 數據表名,預附值:table="db.table";
      Varchar where - 檢索條件,預附值:where="where field=@#value@#";

      Varchar enwhere - 將原where進行兩次base64_encode()編碼后以GET的方式提交
      Varchar splitstr - 頁碼條輸出字串,執行函式后在相應的位置執行 echo splitstr;

      函式調用前需獲取變量 -
      paper=HTTP_GET_VARS[paper];
      sumcnt=HTTP_GET_VARS[sumcnt];
      enwhere=HTTP_GET_VARS[enwhere];

      Return (Varchar where) - 分頁后檢索語句的檢索條件
      注意:本函式需調用出錯處理函式 nerror(error);
      */
      ?>



      圖片文件上傳函式

      //圖片文件上傳函式
      function upload_img(UploadFile,UploadFile_name,UploadFile_size,UploadPath,max_size=64){

      //TimeLimit=60; //設置超時限制時間 缺省時間為 30秒 設置為0時為不限時
      //set_time_limit(TimeLimit);
      if((UploadFile!= "none" )&&(UploadFile != "" )){
      FileName=UploadPath.UploadFile_name;
      if(UploadFile_size <1024){
      FileSize="(string)UploadFile_size" . "字節";
      }elseif(UploadFile_size <(1024 * max_size)){
      FileSize=number_format((double)(UploadFile_size / 1024), 1) . " KB";
      }else{
      nerror("文件超過限制大小!");
      }
      //{
      //FileSize="number_format((double)(UploadFile_size" / (1024 * 1024)), 1) . " MB";
      // }
      if(!file_exists(FileName)){
      if(copy(UploadFile,FileName)){
      return "UploadFile_name (FileSize)";
      }else{
      nerror("文件 UploadFile_name 上載失敗!");
      }
      unlink(UploadFile);
      }else{
      nerror("文件 UploadFile_name 已經存在!");
      }
      //set_time_limit(30); //恢復缺省超時設置
      }
      }
      ?>

       

      分享:如何讓PHP支持斷點續傳文件
      現在的很多服務器都支持斷點續傳去下載軟件,同時很多下載軟件也是斷點續傳,怎么樣才能讓PHP也能實現斷電續傳功能呢?請先看下面的代碼。 fname = './05e58c19552bb26b158f6621a6650899'; fp = fopen(fname,'rb'); fsize = filesize(fname); if (isset(_SER

      來源:模板無憂//所屬分類:PHP教程/更新時間:2010-04-06
      相關PHP教程