国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目錄
php基于Fleaphp框架實(shí)現(xiàn)cvs數(shù)據(jù)導(dǎo)入MySQL的方法,fleaphpcvs
您可能感興趣的文章:
首頁(yè) 後端開(kāi)發(fā) php教程 php基于Fleaphp框架實(shí)現(xiàn)cvs數(shù)據(jù)導(dǎo)入MySQL的方法,fleaphpcvs_PHP教程

php基于Fleaphp框架實(shí)現(xiàn)cvs數(shù)據(jù)導(dǎo)入MySQL的方法,fleaphpcvs_PHP教程

Jul 12, 2016 am 08:58 AM
mysql php

php基于Fleaphp框架實(shí)現(xiàn)cvs數(shù)據(jù)導(dǎo)入MySQL的方法,fleaphpcvs

本文實(shí)例講述了php基于Fleaphp框架實(shí)現(xiàn)cvs數(shù)據(jù)導(dǎo)入MySQL的方法。分享給大家供大家參考,具體如下:

<&#63;php
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
class Controller_KaoqinUpload extends FLEA_Controller_Action {
 var $uploaddir = "./uploadfiles/";
 public function _construct(){
  parent::__construct();
 }
// $patch="http://localhost/uploadfiles";/
 function actionIndex() {
  $smarty =& $this->_getView();
  $smarty->display("kaoqin_upload.html");
 }
 //顯示錯(cuò)誤
 private function showErro(){
 error_reporting(E_ALL);
  ini_set("display_errors","On");
 }
 //判斷日期
 private function isDate($file_name)
 {
  $filename = explode('.',$file_name);
 $real_name = $filename[count($filename)-2];//得到文件名
  $format="Y-m-d";//時(shí)間格式類(lèi)型
  $unixTime=strtotime($real_name);
  $checkDate= date($format,$unixTime);
   if($real_name==$checkDate)
    return ture;
   else
    return false;
 }
 public function actionSave(){
// $this->showErro();
 $upload_file=$_FILES['upload_file'];
 $file_name = $_FILES['upload_file']['name'];
 $file_tmp_name = $_FILES['upload_file']['tmp_name'];
 $file_type = $_FILES['upload_file']['type'];
 $file_size = $_FILES['upload_file']['size'];
 $file_error = $_FILES['upload_file']['error'];
  //檢查文件
  if ($file_name==null)
   {
    echo "文件選擇出錯(cuò),請(qǐng)檢查上傳文件。";
    exit;
   }
  //判斷文件大小
  if ($file_size >=10241024 )
   {
    $file_size = round($file_size/ 1048576 * 100) / 100 . ' mb';
    print_r("上傳的文件大小為"."$file_size");
  echo "系統(tǒng)只允許上傳大小為10M以?xún)?nèi)的文件。";
  exit;
   }
  //$extention_name = end(explode('.',$_FILES["upload_file"]['name']));//獲取擴(kuò)展名
  $extention_name=preg_replace('/.*/.(.*[^/.].*)*/iU','//1',$file_name);//獲得文件的擴(kuò)展名
  //檢查文件類(lèi)型
  if($file_type!="application/vnd.ms-excel"&& $extention_name!="csv")
   {
  echo "您上傳的文件類(lèi)型: .",$extention_name,"<br>";
  print_r("系統(tǒng)允許文件類(lèi)型: .csv");
  exit;
   }
  if(file_exists($this->uploaddir.$_FILES['upload_file']['name']))
  {
    print("備份目錄同名數(shù)據(jù)存在"); //文件存在
    exit;
  }
  if($this->isDate($file_name)==FALSE)
  {
    print("文件命名格式不對(duì),正確格式。例:2010-10-28.csv");   //文件存在
    exit;
  }
  // var_dump(file_exists($this->uploaddir.$_FILES['upload_file']['name'])); //test返回
  print_r("原始考勤數(shù)據(jù)文件:".$_FILES['upload_file']['name']."<br>"."<br>");
  //數(shù)據(jù)導(dǎo)入
//  $fp = fopen($_FILES['upload_file']['tmp_name'], "r");
//  $data = fgets($fp, 1000);
//  $date=setOutputEncoding('utf-8');
  $data=file($_FILES['upload_file']['tmp_name']);
 $attendance =& get_singleton('Model_attendance');
  //print_r($data);
  //數(shù)據(jù)導(dǎo)入處理
  for($i=1;$i<count($data)-1;$i++) {
   $a=explode(";",$data[$i]);
   //編碼格式轉(zhuǎn)換
   $a[0]=iconv("gb2312", "utf-8", $a[0]);
   $a[1]=iconv("gb2312", "utf-8", $a[1]);
   $a[2]=iconv("gb2312", "utf-8", $a[2]);
   $a[4]=iconv("gb2312", "utf-8", $a[4]);
   $a[5]=iconv("gb2312", "utf-8", $a[5]);
   // print_r($a);
   $t=array();
   $t["ATTENDANCE_FINGERPRINT_ID"]=intval(trim($a[0],"/""));
   $t["ATTENDANCE_USER_NAME"]=trim($a[1],"/"");
   $t["ATTENDANCE_DATE"]=trim($a[2],"/"");
   // $t["ATTENDANCE_DIVISIONS"]=trim($a[3],"/"");//表中字段ATTENDANCE_DIVISIONS在表中刪除
   $t["ATTENDANCE_GO_WORK"]=trim($a[4],"/"");
   $t["ATTENDANCE_AFTER_WORK"]=trim($a[5],"/"");
   //判斷打卡情況
   $go_work = trim($a[4],"/"");//上班時(shí)間
   $after_work = trim($a[5],"/"");//下班時(shí)間
 //   print_r(var_dump($go_work));
   // exit();
   if(strlen($go_work)==0 && strlen($after_work)!=0)
    {
     $t["ATTENDANCE_STATUS"]= "1"; //"1"代表正常出勤
    }
   if(strlen($go_work)!=0 && strlen($after_work)==0)
    {
      $t["ATTENDANCE_STATUS"] ="2"; //"2"代表上班為打卡
    }
   if(strlen($go_work)!=0 && strlen($after_work)!=0)
    {
     $t["ATTENDANCE_STATUS"] ="3"; //"3"代表下班未打
    }
   if(strlen($go_work)==0 && strlen($after_work)==0)
    {
     $t["ATTENDANCE_STATUS"]= "4"; //"4"代表未出勤
    }
   //按考勤規(guī)則重置正常上下班時(shí)間
    if(strlen($go_work) == 0 && strlen($after_work) == 0)
   {
    $go_work = "24:00";
    $after_work = "00:00";//未出勤按子時(shí)計(jì)算
   }
   if(strlen($go_work) == 0 && strlen($after_work)!=0)
   {
    $t["ATTENDANCE_GO_WORK"] = $go_work = "08:35";//上班未打卡按08:35開(kāi)始計(jì)算
   }
   if(strlen($go_work) != 0 && strlen($after_work) == 0)
   {
    $t["ATTENDANCE_AFTER_WORK"] = $after_work = "17:30"; //下班為打卡按17:30計(jì)算
   }
   //計(jì)算在勤時(shí)間
   $minutes;//保存分鐘段
   $hours;//保存小時(shí)段
   $real_time1 = explode(":",$go_work);//上班時(shí)間分割數(shù)組
   $real_time2 = explode(":",$after_work);//下班時(shí)間分割數(shù)組
   //開(kāi)始處理在勤時(shí)間
   $minutes=intval(intval($real_time2[1])-intval($real_time1[1]));
    if($minutes<0)
     {
     $hours=intval(intval(($real_time2[0])-1)-intval($real_time1[0]));
     if($hours<=0)
     {
      $hours=intval((intval($real_time2[0])-1)-intval($real_time1[0])+24);
      }
     $minutes=intval(intval($real_time2[1])+60-intval($real_time1[1]));
     $attendance_time = sprintf("%02d", $hours).":".sprintf("%02d", $minutes);
     }
    else
     {
     $hours =intval(intval($real_time2[0])-intval($real_time1[0]));
     if($hours<=0)
     {
      $hours = intval(intval($real_time2[0])-intval($real_time1[0])+24);
     }
     if($minutes>=10 && $minutes<60) //開(kāi)始選用strlen判斷字符長(zhǎng)度補(bǔ)齊位,現(xiàn)在直接用格式化輸出,原結(jié)構(gòu)不變。
     {$attendance_time = sprintf("%02d", $hours).":".sprintf("%02d", $minutes);}
     else
     {
      $attendance_time = sprintf("%02d", $hours).":".sprintf("%02d", $minutes);
     }
     }
    // 更正未出勤時(shí)間情況,去除午休時(shí)間的在勤時(shí)間
    if($attendance_time=="-1:00")
    {
     $attendance_time="00:00";
    }
   $t["ATTENDANCE_TIME"]=$attendance_time;//保存在勤時(shí)間
   $attendance->create($t);//存入數(shù)據(jù)庫(kù)
  }
//  print_r("數(shù)據(jù)導(dǎo)入成功")."<br>";
  //原始csv文件數(shù)據(jù)備份,文件保存在系統(tǒng)的./uploadfiles/文件夾下
  switch ($file_error)
  {
  case 0:
   Echo "考勤數(shù)據(jù)更新成功"."<br>"; break;
  case 1:
   Echo "上傳的文件超過(guò)了 php.ini 中 upload_max_filesize 選項(xiàng)限制的值."."<br>"; break;
  case 2:
   Echo "上傳文件的大小超過(guò)了 HTML 表單中 MAX_FILE_SIZE 選項(xiàng)指定的值。"."<br>"; break;
  case 3:
   Echo "文件只有部分被上傳"."<br>";break;
  case 4:
   Echo "沒(méi)有文件被上傳"."<br>";break;
  case 6:
   Echo "找不到臨時(shí)文件夾"."<br>";break;
  case 7:
   Echo "文件寫(xiě)入失敗"."<br>";break;
  }
  echo "<br>";
//  exit();
//  $absolutdir=$_SERVER[DOCUMENT_ROOT ].$uploaddir.$file_name;
  if ($_FILES["upload_file"]['error']==0)
  { //echo $file_tmp_name;
   //echo $this->uploaddir.$_FILES['upload_file']['name'];
   //$name=time();
   if( move_uploaded_file($file_tmp_name, $this->uploaddir.$_FILES['upload_file']['name']))
    {
    echo '原始數(shù)據(jù)備份成功';
     }
   else
    {
    echo '備份原始數(shù)據(jù)失敗';
    }
  }
 }
}
&#63;>

更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門(mén)教程》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫(kù)操作入門(mén)教程》及《php常見(jiàn)數(shù)據(jù)庫(kù)操作技巧匯總》

希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。

您可能感興趣的文章:

  • fleaphp rolesNameField bug解決方法
  • fleaphp crud操作之find函數(shù)的使用方法
  • fleaphp crud操作之findByField函數(shù)的使用方法
  • fleaphp常用方法分頁(yè)之Pager使用方法
  • FleaPHP的安全設(shè)置方法
  • fleaphp下不確定的多條件查詢(xún)的巧妙解決方法
  • PHP處理excel cvs表格的方法實(shí)例介紹
  • php導(dǎo)入excel文件到mysql數(shù)據(jù)庫(kù)的方法
  • PHP導(dǎo)出MySQL數(shù)據(jù)到Excel文件(fputcsv)
  • PHP導(dǎo)入Excel到MySQL的方法
  • phpMyAdmin下將Excel中的數(shù)據(jù)導(dǎo)入MySql的圖文方法
  • php 將excel導(dǎo)入mysql

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1102462.htmlTechArticlephp基于Fleaphp框架實(shí)現(xiàn)cvs數(shù)據(jù)導(dǎo)入MySQL的方法,fleaphpcvs 本文實(shí)例講述了php基于Fleaphp框架實(shí)現(xiàn)cvs數(shù)據(jù)導(dǎo)入MySQL的方法。分享給大家供大家參考...
本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願(yuàn)投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請(qǐng)聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開(kāi)發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)程式碼編輯軟體(SublimeText3)

熱門(mén)話(huà)題

在C中使用std :: Chrono 在C中使用std :: Chrono Jul 15, 2025 am 01:30 AM

std::chrono在C 中用於處理時(shí)間,包括獲取當(dāng)前時(shí)間、測(cè)量執(zhí)行時(shí)間、操作時(shí)間點(diǎn)與持續(xù)時(shí)間及格式化解析時(shí)間。 1.獲取當(dāng)前時(shí)間使用std::chrono::system_clock::now(),可轉(zhuǎn)換為可讀字符串但係統(tǒng)時(shí)鐘可能不單調(diào);2.測(cè)量執(zhí)行時(shí)間應(yīng)使用std::chrono::steady_clock以確保單調(diào)性,並通過(guò)duration_cast轉(zhuǎn)換為毫秒、秒等單位;3.時(shí)間點(diǎn)(time_point)和持續(xù)時(shí)間(duration)可相互操作,但需注意單位兼容性和時(shí)鐘紀(jì)元(epoch)

PHP如何處理環(huán)境變量? PHP如何處理環(huán)境變量? Jul 14, 2025 am 03:01 AM

toAccessenvironmentVariablesInphp,useGetenv()或$ _envsuperglobal.1.getEnv('var_name')retievesSpecificvariable.2。 $ _ en v ['var_name'] accessesvariablesifvariables_orderInphp.iniincludes“ e” .setVariablesViaCliWithvar = vualitephpscript.php,inapach

為什麼我們?cè)u(píng)論:PHP指南 為什麼我們?cè)u(píng)論:PHP指南 Jul 15, 2025 am 02:48 AM

PHPhasthreecommentstyles://,#forsingle-lineand/.../formulti-line.Usecommentstoexplainwhycodeexists,notwhatitdoes.MarkTODO/FIXMEitemsanddisablecodetemporarilyduringdebugging.Avoidover-commentingsimplelogic.Writeconcise,grammaticallycorrectcommentsandu

PHP標(biāo)頭重定向不起作用 PHP標(biāo)頭重定向不起作用 Jul 14, 2025 am 01:59 AM

header函數(shù)跳轉(zhuǎn)失敗原因及解決方法:1.header前已有輸出,需檢查並移除所有前置輸出或使用ob_start()緩衝;2.未加exit導(dǎo)致後續(xù)代碼干擾,應(yīng)在跳轉(zhuǎn)後立即添加exit或die;3.路徑錯(cuò)誤應(yīng)使用絕對(duì)路徑或動(dòng)態(tài)拼接確保正確;4.服務(wù)器配置或緩存干擾可嘗試清除緩存或更換環(huán)境測(cè)試。

PHP準(zhǔn)備的聲明獲得結(jié)果 PHP準(zhǔn)備的聲明獲得結(jié)果 Jul 14, 2025 am 02:12 AM

在PHP中使用預(yù)處理語(yǔ)句獲取數(shù)據(jù)庫(kù)查詢(xún)結(jié)果的方法因擴(kuò)展而異,1.使用mysqli時(shí)可通過(guò)get_result()配合fetch_assoc()獲取關(guān)聯(lián)數(shù)組,適用於現(xiàn)代環(huán)境;2.也可使用bind_result()綁定變量,適合字段少、結(jié)構(gòu)固定的情況,兼容性好但字段多時(shí)較繁瑣;3.使用PDO時(shí)通過(guò)fetch(PDO::FETCH_ASSOC)獲取關(guān)聯(lián)數(shù)組,或用fetchAll()一次性獲取所有數(shù)據(jù),接口統(tǒng)一且錯(cuò)誤處理更清晰;此外需注意參數(shù)類(lèi)型匹配、執(zhí)行execute()、及時(shí)釋放資源及開(kāi)啟錯(cuò)誤報(bào)告以

mysql公共表表達(dá)式(CTE)示例 mysql公共表表達(dá)式(CTE)示例 Jul 14, 2025 am 02:28 AM

CTE是MySQL中用於簡(jiǎn)化複雜查詢(xún)的臨時(shí)結(jié)果集。它在當(dāng)前查詢(xún)中可多次引用,提升代碼可讀性和維護(hù)性。例如,在orders表中查找每個(gè)用戶(hù)的最新訂單時(shí),可通過(guò)CTE先獲取每個(gè)用戶(hù)的最新訂單日期,再與原表關(guān)聯(lián)獲取完整記錄。相比子查詢(xún),CTE結(jié)構(gòu)更清晰,邏輯更易調(diào)試。使用技巧包括明確別名、串聯(lián)多個(gè)CTE以及利用遞歸CTE處理樹(shù)形數(shù)據(jù)。掌握CTE能使SQL更優(yōu)雅高效。

為MySQL表中的列選擇適當(dāng)?shù)臄?shù)據(jù)類(lèi)型 為MySQL表中的列選擇適當(dāng)?shù)臄?shù)據(jù)類(lèi)型 Jul 15, 2025 am 02:25 AM

insetTingUpmysqltables,選擇theStherightDatatatPesisionCrucialForeffifeffifeffifeffificeFifeffifeFrifeFifeScalible

PHP檢查字符串是否以特定的字符串開(kāi)頭 PHP檢查字符串是否以特定的字符串開(kāi)頭 Jul 14, 2025 am 02:44 AM

在PHP中判斷字符串是否以特定字符串開(kāi)頭可通過(guò)多種方法實(shí)現(xiàn):1.使用strncmp()比較前n個(gè)字符,若返回0則開(kāi)頭匹配,不區(qū)分大小寫(xiě);2.使用strpos()檢查子字符串位置是否為0,區(qū)分大小寫(xiě),可用stripos()替代實(shí)現(xiàn)不區(qū)分大小寫(xiě);3.可封裝startsWith()或str_starts_with()函數(shù)提高複用性;此外需注意空字符串默認(rèn)返回true、編碼兼容性及性能差異,strncmp()通常效率更高。

See all articles