搜索
首页后端开发php教程方便实用的PHP数据库操作类

方便实用的PHP数据库操作类

Aug 22, 2019 pm 03:39 PM
数据库

一个简单的php mysql数据库操作类,含有增删改查以及分页和排序功能 直接实例化 $db_class 即可使用 !

<?php
     class Mysql{
          private $LocalHost = &#39;localhost&#39;;
          private $LoaclUser = &#39;&#39;;
          private $LocalPass = &#39;&#39;;
          private $LocalBase = &#39;&#39;;
          private $LocalCode = &#39;UTF8&#39;;
          private $PreFix;
          private $Conn;
          private $Start   = 0;
          private $Error   = false; //数据库连接状态, false表示未连接或连接不正常
          public $Err    = true; //Sql执行结果
          private $Table;
          private $Field   = &#39;*&#39;;
          private $Where   = &#39;&#39;;
          private $Order   = &#39;&#39;;
          private $PageSize = 0; //分页显示->每页多少条,0为不分页显示
          private $PageCount = 1; //分页显示->总共有多少条
          private $PageNum  = 1; //分页显示->总共有多少页
          private $PageNo  = 1; //分页显示->当前第几页
          private $PageKey  = &#39;page&#39;; //分页url参数键
          private $PageStart = 0; //分页显示->当前从第几条开始返回
          private $Select;
          private $Rest;
          private $Result  = false;//结果集
          public $FormArray = array();
          public $Instr_ID = 0;
          private $j = 0;
          public function Parameter($Loca, $Root, $Pass, $Base, $Code, $PreFix = &#39;&#39;){
              $this->LoaclUser = $Root;
                        $this->LocalBase = $Base;
                        $this->LocalCode = $Code;
                        $this->LocalHost = $Loca;
                        $this->LocalPass = $Pass;
                        $this->PreFix  = $PreFix;
                        return $this;
          }
          private function Connection( $Sql ){
            !function_exists(mysqli_connect) ? die(&#39;查询失败,无法加载mysqli扩展&#39;) : null;
            $this->Conn = @new mysqli( $this->LocalHost, $this->LoaclUser, $this->LocalPass, $this->LocalBase);
            $this->Error = mysqli_connect_errno() == 0 ? true : false;
            !$this->Error ? die(&#39;数据库连接错误,请检查数据库连接参数&#39;) : null;
            $this->Conn->query(&#39;SET NAMES &#39; . $this->LocalCode);
            $this->Rest = $this->Conn->query($Sql);
            $this->Err = mysqli_error($this->Conn);
            $this->Instr_ID = mysqli_insert_id($this->Conn);
            $this->Rest->free_result;
            $this->Conn->close;
            $this -> FormArray = &#39;&#39;;
            return $this;
          }
          public function null(){
                        $this->PageSize = 0;
                        //$this->PageCount = 1;
                        $this->PageStart = 1;
                        $this->Field   = &#39; * &#39;;
                        $this->Select  = &#39;&#39;;
                        unset($this->Table, $this->Where,$this->Order, $this->Result);
                      }
                      public function Table( $TableName ) {//数据表
                           $this -> null();
                           $this->Table = &#39;`&#39; . $this->PreFix . $TableName . &#39;`&#39;;
                           return $this;
                      }
                      public function Field( $Array = &#39;*&#39; ) {//数据字段
                           !empty( $this->Field ) ? $this->Field = &#39;&#39; : null;
                           $Array = explode(&#39;,&#39;, $Array);
                           foreach ( $Array as $field ) {
                             $this->Field .= !$this->Start ? &#39;`&#39; . $field . &#39;`&#39; : &#39;, `&#39; . $field . &#39;`&#39;;
                             $this->Start++;
                           }
                            $this->Start = 0;
                            return $this;
                      }
                       public function Where( $Where ) {//条件
                            $this->Where = &#39; where &#39; .$Where;
                            return $this;
                       }
                       public function Order( $Order ) {//排序
                           $this->Order = &#39; order by &#39; . $Order;
                           return $this;
                       }
                      public function pk( $key ) {//分页url参数键
                           $this->PageKey = $key;
                           return $this;
                      }
                      public function Page( $PageSize ) {//分页
                           $this->PageSize = $PageSize;
                           $this->PageNo  = $this->get( $this->PageKey );
                           $this->PageNo  = empty( $this->PageNo ) || !isset( $this->PageNo ) || !is_numeric( $this->PageNo ) || $this->PageNo < 1 ? 1 : $this->PageNo;
                           return $this;
                      }
                      public function post( $Key, $Filter = true ){
                            return $Filter ? strip_tags($_POST[$Key]) : $_POST[$Key];
                      }
                      public function get( $Key, $Filter = true ){
                        return $Filter ? strip_tags($_GET[$Key]) : $_GET[$Key];
                      }
                      public function Sel(){
                        $this->Select = &#39;Select &#39; . $this->Field . &#39; from &#39; . $this->Table . $this->Where . $this->Order;
                        $this->Connection( $this->Select );
                        if ( $this->Rest->num_rows ) {
                         while ( $Rs = $this->Rest->fetch_assoc() ) {
                           $this->Result[] = $Rs;
                         }
                        }
                        $DataBase = $this->Result;
                        return empty($DataBase) ? false : $DataBase;
                      }
                      public function querys( $Sql = &#39;&#39;, $Type = &#39;not&#39;, $biao = false ) {
                        $this->Select = $Sql;
                        $this->Connection( $this->Select );
                        if ( $this->Rest->num_rows ) {
                        if ( !$biao ) {
                         while ( $Rs = $this->Rest->fetch_array() ) {
                           $this->Result[] = !preg_match(&#39;/^\d+$/i&#39;, $Type) ? $Rs : $Rs[ $Type ];
                         }
                        } else {
                         while ( $Rs = $this->Rest->fetch_assoc() ) {
                           $this->Result[] = $Rs;
                         }
                        }
                        }
                        $DataBase = $this->Result;
                        return empty($DataBase) ? false : $DataBase;
                      }
                      public function executes( $Sql = &#39;&#39; ){
                        $this->Connection( $Sql );
                        return $this->Rest;
                      }
                      public function exists( $T = &#39;&#39;, $F = &#39;&#39;, $W = &#39;&#39;){
                        if ( empty( $F ) ) { return 0; }
                        $cmd = empty( $W ) ? &#39;Select sum(&#39; . $F . &#39;) as `baiyinum` from `&#39; . $this->PreFix . $T .&#39;`&#39; : &#39;Select sum(&#39; . $F . &#39;) as `baiyinum` from `&#39; . $this->PreFix . $T .&#39;` Where &#39; . $W;
                        $this->Connection( $cmd );
                        unset( $T, $F, $W, $cmd );
                        $Rel = $this->Rest->fetch_array();
                        return round( $Rel[&#39;baiyinum&#39;], 2 );
                      }
                      public function ExistsTo( $Bili = 10000, $T = &#39;&#39;, $F = &#39;&#39;, $W = &#39;&#39;){
                        if ( empty( $F ) ) { return 0; }
                        $cmd = empty( $W ) ? &#39;Select sum(&#39; . $F . &#39;) as `baiyinum` from `&#39; . $this->PreFix . $T .&#39;`&#39; : &#39;Select sum(&#39; . $F . &#39;) as `baiyinum` from `&#39; . $this->PreFix . $T .&#39;` Where &#39; . $W;
                        $this->Connection( $cmd );
                        unset( $T, $F, $W, $cmd );
                        $Rel = $this->Rest->fetch_array();
                        return round( $Rel[&#39;baiyinum&#39;] * $Bili );
                      }
                      public function Select( $Type = true, $ListNum = 1 ){ //返回记录(数组形式, 返回条数)
                       $this->Select = &#39;Select &#39; . $this->Field . &#39; from &#39; . $this->Table . $this->Where . $this->Order;
                       if ( is_numeric( $ListNum ) ) {
                        if ( $this->PageSize > 0 ) {
                          $this->Connection( $this->Select );//执行查询
                          $this->PageCount = $this->Rest->num_rows;//取得记录总数
                          $this->PageNum  = ceil($this->PageCount / $this->PageSize); //总共有多少页
                          $this->PageNo  = $this->PageNo > $this->PageNum ? $this->PageNum : $this->PageNo;
                          $this->PageStart = ( $this->PageNo - 1 ) * $this->PageSize;  //当前从第几条开始返回
                          $this->Select  .= &#39; limit &#39; . $this->PageStart . &#39;, &#39; .$this->PageSize; //重新构造sql语句
                        } else {
                          $this->Select  .= &#39; limit &#39; . $ListNum; //重新构造sql语句
                        }
                       } else {
                          $this->Select  .= &#39; limit 1&#39;; //重新构造sql语句
                       }
                       //echo $this->Select;
                       $this->Connection( $this->Select );//再次执行查询
                       if ( $this->Rest->num_rows ) {//如果记录存在
                        if ( $Type ) {
                         while ( $Rs = $this->Rest->fetch_array() ) {
                           $this->Result[] = $Rs;
                         }
                        }else{
                         while ( $Rs = $this->Rest->fetch_assoc() ) {
                           $this->Result[] = $Rs;
                         }
                        }
                       }
                       if ( ( $ListNum == 1 or !is_numeric( $ListNum ) ) && !$this->PageSize) { $this->Result = $this->Result[0]; }
                       $DataBase = $this->Result;
                       return empty($DataBase) ? false : $DataBase;
                      }
                      public function Num() { //返回记录总数
                       $this->Select = &#39;Select &#39; . $this->Field . &#39; from &#39; . $this->Table . $this->Where . $this->Order;
                       $this->Connection( $this->Select );//执行查询
                       return $this->Rest->num_rows;//取得记录总数
                      }
                      public function PageNav($NumNav = false ) { //分页
                       $Action = $this -> get(&#39;action&#39;);
                       !empty( $Action ) or $Action = &#39;index&#39;;
                       $Module = $this -> get(&#39;module&#39;);
                       !empty( $Module ) or $Module = &#39;index&#39;;
                       $NavUrl  = &#39;/&#39; . $Module . &#39;/&#39; . $Action . &#39;/&#39; . $this -> PageKey .&#39;/&#39;;
                       $NaIndex = &#39;/&#39; . $Module . &#39;/&#39; . $Action;
                       $PageHtml = "\n<div class=\"pagenav\">";
                       $PageHtml .= &#39;<span>&#39; . $this->PageCount . &#39;条记录    &#39; . $this->PageNo . &#39;/&#39; . $this->PageNum . &#39;页</span>      &#39;;
                       $this->PageNo <= 1 or $PageHtml .= "<a href=\"" . $NaIndex . "\">首页</a>\n<a href=\"" . $NavUrl . ($this->PageNo - 1) . "\">上一页</a>\n";
                      if ( $NumNav ) { $PageHtml .= $this->NumPage($NavUrl); }
                      $this->PageNo >= $this->PageNum or $PageHtml .= "<a href=\"" . $NavUrl. ($this->PageNo + 1) . "\">下一页</a>\n<a href=\"" . $NavUrl . $this->PageNum . "\">尾页</a>\n";
                      $PageHtml .= "</div>\n";
                      return $PageHtml;
                      }
                      private function NumPage( $Can = &#39;&#39; ) { //数字分页
                        $NumHtml = &#39;&#39;;
                        $First  = 1;
                        $Last  = $this->PageNum;
                        if ( $this->PageNum > 5 ) {
                          if ( $this->PageNo < $this->PageNum ) {
                           $First = $this->PageNo - 2;
                           $Last = $this->PageNo + 2;
                          }else{
                           $First = $this->PageNo - 4;
                           $Last = $this->PageNum;
                          }
                        }
                        if ( $First < 1 ) { $First  = 1; $Last = $First + 4;}
                        if ( $Last > $this->PageNum ) { $First  = $this->PageNum - 4; $Last = $this->PageNum;}
                        for( $i = $First; $i <= $Last; $i++) {
                          $NumHtml .= $this->PageNo != $i ? "\n\t" . &#39;<a href="&#39; . $Can . $i . &#39;" rel="external nofollow" >&#39; . $i . &#39;</a>&#39; . "\n\t" : "\n\t" .&#39;<a class="hover" disabled="disabled">&#39; . $i . &#39;</a>&#39; . "\n\t";
                        }
                        unset($Can, $First, $i, $Last);
                        return $NumHtml;
                      }
                      public function UserPage($NumNav = false, $PageName = &#39;index&#39;, $Mulu = &#39;user&#39; ) { //会员中心分页
                       $NavUrl  = &#39;/&#39; . $Mulu . &#39;/&#39; . $PageName . &#39;/&#39; . $this->PageKey . &#39;/&#39;;
                       $PageHtml = "\n<div class=\"pagenav\">";
                       $PageHtml .= &#39;<span>&#39; . $this->PageCount . &#39;条记录    &#39; . $this->PageNo . &#39;/&#39; . $this->PageNum . &#39;页</span>      &#39;;
                       $this->PageNo <= 1 or $PageHtml .= "<a href=\"" . $NavUrl . "1\">首页</a>\n<a href=\"" . $NavUrl . ($this->PageNo - 1) . "\">上一页</a>\n";
                      if ( $NumNav ) { $PageHtml .= $this->NumPage($NavUrl); }
                      $this->PageNo >= $this->PageNum or $PageHtml .= "<a href=\"" . $NavUrl. ($this->PageNo + 1) . "\">下一页</a>\n<a href=\"" . $NavUrl . $this->PageNum . "\">尾页</a>\n";
                      $PageHtml .= "</div><div class=\"clear\"></div>\n";
                      return $PageHtml;
                      }
                      //表单处理开始
                      //判断表单时候提交
                      public function FormIs( $Keys = &#39;mm&#39; ) {
                        return $_POST[ $Keys ] == 1 ? true : false;
                      }
                      //post方式获取数据
                      public function _post( $Keys = &#39;&#39;, $TiHuan = &#39;&#39;) {
                        $Values = strip_tags( $_POST[ $Keys ] );
                        $this->FormArray[$Keys] = empty( $Values ) ? $TiHuan : $Values;
                        return empty( $Values ) ? $TiHuan : $Values;
                      }
                      //get方法获取数据
                      public function _get( $Keys = &#39;&#39;, $TiHuan = &#39;&#39;) {
                        $Values = strip_tags( $_GET[ $Keys ] );
                        return empty( $Values ) ? $TiHuan : $Values;
                      }
                      //判断是否为数字并且不小于0
                      public function IsNum( $Num = 0, $Mesg = &#39;参数必须为数字&#39; ) {
                        if ( is_numeric( $Num ) && !empty( $Num ) && $Num >= 0 ) {
                          return $Num;
                        }else{
                          die( $Mesg );
                        }
                      }
                      //判断是否为数字并且不小于0返回True/False
                      public function NumBer( $Num = 0) {
                         return is_numeric( $Num ) && !empty( $Num ) && $Num >= 0 ? true : false;
                      }
                      //检测相关数据似乎存在
                      public function IsData($Types = true, $memg = &#39;数据已经存在&#39; ){
                        $this->Connection(&#39;select &#39; . $this->Field . &#39; from &#39; . $this->Table . $this->Where);
                        if ( $Types ){
                          $this->Rest->num_rows > 0 ? die( $memg ) : null;
                        } else {
                          return $this->Rest->num_rows;
                        }
                      }
                      //写入数据库记录
                      public function into( $Mesg = &#39;&#39; ){
                        !is_array( $this->FormArray ) ? die( $Mesg ) : null;
                        $Sql = &#39;insert into &#39; . $this->Table . &#39; (`&#39;;
                        $I  = 0;
                        foreach ( $this->FormArray as $Key => $Val ){
                          $Duan .= !$I ? $Key . &#39;`&#39; : &#39;, `&#39; . $Key . &#39;`&#39;;
                          if ( is_numeric( $Val ) ){
                            $Vals .= !$I ? $Val : &#39;, &#39; . $Val;
                          }else{
                            $Vals .= !$I ? &#39;\&#39;&#39; . $Val . &#39;\&#39;&#39; : &#39;, \&#39;&#39; . $Val . &#39;\&#39;&#39;;
                          }
                          $I++;
                        }
                        $Sql .= $Duan . &#39;) values (&#39; . $Vals . &#39;)&#39;;
                        //@file_put_contents(&#39;1.sql&#39;, $Sql, FILE_APPEND);
                        $this->Connection( $Sql );
                        return !empty( $this->Err ) ? false : true;
                      }
                      //数组形式写入数据
                      public function MsgBox( $Table = &#39;&#39;, $Filed = array() ) {
                        $this -> Table($Table);
                        foreach( $Filed as $Key => $Val ) {
                         $this -> FormArray[ $Key ] = $Val;
                        }
                       return $this -> Into(&#39;未取得数据&#39;);
                      }
                      //修改数据库记录
                      public function Edit( $Array = array() ) {
                        if ( empty( $Array ) ) { $Array = $this -> FormArray; }
                        if ( !is_array( $Array ) || empty( $Array ) ) {
                          return false;
                        } else {
                         $Sql = &#39;update &#39; . $this -> Table . &#39; set &#39;;
                         $I  = 0;
                         $Sub = &#39;&#39;;
                         $Huan = array(&#39;-&#39; => &#39;[jian]&#39;, &#39;+&#39; => &#39;[jia]&#39;, &#39;*&#39; => &#39;[cheng]&#39;, &#39;/&#39; => &#39;[chu]&#39;);
                         $Zhan = array(&#39;[jian]&#39; => &#39;-&#39;, &#39;[jia]&#39; => &#39;+&#39;, &#39;[cheng]&#39; => &#39;*&#39;, &#39;[chu]&#39; => &#39;/&#39;);
                         foreach ( $Array as $Files => $Val ) {
                           $Val = !is_numeric( $Val ) && !preg_match(&#39;/\`\w+\`\s*(\+|\-|\*|\/)/i&#39;, $Val) ? &#39;\&#39;&#39; . $Val . &#39;\&#39;&#39; : $Val;
                           foreach ( $Huan as $key => $val ){
                             $Val = str_replace($key, $val, $Val);
                           }
                           $duan = !$I ? &#39;`&#39; . $Files . &#39;` = &#39; : &#39;, `&#39; . $Files . &#39;` = &#39;;
                           $Sub .= $duan . $Val;
                           $I++;
                         }
                         $Sql .= $Sub . $this -> Where;
                         foreach ( $Zhan as $Fan => $Hui ) {
                           $Sql = str_replace($Fan, $Hui, $Sql);
                         }
                         //echo $Sql; die;
                        $this -> Connection( $Sql );
                        unset( $Array, $duan, $Fan, $Files, $Huan, $Hui, $I, $key, $Sql, $Sub, $Val, $Zhan, $val );
                        return !empty( $this -> Err ) ? false : true;
                       }
                      }
                      //删除数据库记录
                      public function del(){
                        $Sql = &#39;delete from &#39; . $this->Table . $this->Where;
                        $this->Connection( $Sql );
                        unset($Sql);
                        return !empty( $this->Err ) ? false : true;
                      }
                      //表单处理结束
                      //页面跳转
                      public function Msg( $Text = &#39;操作成功&#39; ) {
                        echo &#39;<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />&#39;;
                        echo &#39;<script type="text/javascript">
                     <!--
                      alert("&#39; . $Text . &#39;");
                      document.location="&#39; . $_SERVER[&#39;HTTP_REFERER&#39;] . &#39;";
                     //-->
                    </script>&#39;;
                     exit;
                      }
                      #取得系统当前时间
                      public function Times(){
                        return str_replace(&#39;-&#39;, &#39;[jian]&#39;, date(&#39;Y-m-d H:i:s&#39;));
                      }
                      #取得用户IP地址
                      public function GetIP(){
                       if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown"))
                        $ip = getenv("HTTP_CLIENT_IP");
                        else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown"))
                        $ip = getenv("HTTP_X_FORWARDED_FOR");
                        else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown"))
                        $ip = getenv("REMOTE_ADDR");
                        else if (isset($_SERVER[&#39;REMOTE_ADDR&#39;]) && $_SERVER[&#39;REMOTE_ADDR&#39;] && strcasecmp($_SERVER[&#39;REMOTE_ADDR&#39;], "unknown"))
                        $ip = $_SERVER[&#39;REMOTE_ADDR&#39;];
                        else
                        $ip = "unknown";
                       return($ip);
                      }
                      //最后关闭数据库连接
                      public function Close(){
                        !is_object( $this -> Conn ) or mysqli_close( $this -> Conn );
                      }
}

以上是关于PHP数据库的封装类的详细步骤,如有错误还请指出。不胜感激!

更多PHP相关问题请访问PHP中文网:PHP视频教程

以上是方便实用的PHP数据库操作类的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文转载于:CSDN。如有侵权,请联系admin@php.cn删除
可以在PHP会话中存储哪些数据?可以在PHP会话中存储哪些数据?May 02, 2025 am 12:17 AM

phpsessionscanStorestrings,数字,数组和原始物。

您如何开始PHP会话?您如何开始PHP会话?May 02, 2025 am 12:16 AM

tostartaphpsession,usesesses_start()attheScript'Sbeginning.1)placeitbeforeanyOutputtosetThesessionCookie.2)useSessionsforuserDatalikeloginstatusorshoppingcarts.3)regenerateSessiveIdStopreventFentfixationAttacks.s.4)考虑使用AttActAcks.s.s.4)

什么是会话再生,如何提高安全性?什么是会话再生,如何提高安全性?May 02, 2025 am 12:15 AM

会话再生是指在用户进行敏感操作时生成新会话ID并使旧ID失效,以防会话固定攻击。实现步骤包括:1.检测敏感操作,2.生成新会话ID,3.销毁旧会话ID,4.更新用户端会话信息。

使用PHP会话时有哪些性能考虑?使用PHP会话时有哪些性能考虑?May 02, 2025 am 12:11 AM

PHP会话对应用性能有显着影响。优化方法包括:1.使用数据库存储会话数据,提升响应速度;2.减少会话数据使用,只存储必要信息;3.采用非阻塞会话处理器,提高并发能力;4.调整会话过期时间,平衡用户体验和服务器负担;5.使用持久会话,减少数据读写次数。

PHP会话与Cookie有何不同?PHP会话与Cookie有何不同?May 02, 2025 am 12:03 AM

PHPsessionsareserver-side,whilecookiesareclient-side.1)Sessionsstoredataontheserver,aremoresecure,andhandlelargerdata.2)Cookiesstoredataontheclient,arelesssecure,andlimitedinsize.Usesessionsforsensitivedataandcookiesfornon-sensitive,client-sidedata.

PHP如何识别用户的会话?PHP如何识别用户的会话?May 01, 2025 am 12:23 AM

phpientifiesauser'ssessionusessessionSessionCookiesAndSessionIds.1)whiwSession_start()被称为,phpgeneratesainiquesesesessionIdStoredInacookInAcookInamedInAcienamedphpsessidontheuser'sbrowser'sbrowser.2)thisIdAllowSphptptpptpptpptpptortoreTessessionDataAfromtheserverMtheserver。

确保PHP会议的一些最佳实践是什么?确保PHP会议的一些最佳实践是什么?May 01, 2025 am 12:22 AM

PHP会话的安全可以通过以下措施实现:1.使用session_regenerate_id()在用户登录或重要操作时重新生成会话ID。2.通过HTTPS协议加密传输会话ID。3.使用session_save_path()指定安全目录存储会话数据,并正确设置权限。

PHP会话文件默认存储在哪里?PHP会话文件默认存储在哪里?May 01, 2025 am 12:15 AM

phpsessionFilesArestoredIntheDirectorySpecifiedBysession.save_path,通常是/tmponunix-likesystemsorc:\ windows \ windows \ temponwindows.tocustomizethis:tocustomizEthis:1)useession_save_save_save_path_path()

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

安全考试浏览器

安全考试浏览器

Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器