백엔드 개발 PHP 튜토리얼 php实战第三天_PHP教程

php实战第三天_PHP教程

Jul 14, 2016 am 10:10 AM
jquery php 개정하다 콘텐츠 실제 전투 공들여 나열한 것 비교하다 특수 효과 ~의

 
\ 
做了一个新的布局,感觉比以前的舒服.

jquery的特效也修改了.移到到内容区块就把文本的颜色改成漂亮的蓝色.移除去掉.


[javascript]  // JavaScript Document  
$(document).ready(function(e) { 
    $user=$("div .user"); 
    $text=$("div .text"); 
     
    $("div .content").each(function(index){ 
        $(this).mousemove(function(){ 
         
        $user.eq(index).css("color","#0A8CD2"); 
 
    //  $user.eq(index).css("background","#FFE6AD");  
    //  $text.eq(index).css("background","#FFFDF6");  
         
        }).mouseout(function(){ 
         
        $user.eq(index).css("color","#000"); 
 
    //  $user.eq(index).css("background","#E6F0F9");  
    //  $text.eq(index).css("background","#F8FBFD");  
        }); 
    }); 
 
     
}); 

// JavaScript Document
$(document).ready(function(e) {
 $user=$("div .user");
 $text=$("div .text");
 
 $("div .content").each(function(index){
  $(this).mousemove(function(){
  
  $user.eq(index).css("color","#0A8CD2");

 // $user.eq(index).css("background","#FFE6AD");
 // $text.eq(index).css("background","#FFFDF6");
  
  }).mouseout(function(){
  
  $user.eq(index).css("color","#000");

 // $user.eq(index).css("background","#E6F0F9");
 // $text.eq(index).css("background","#F8FBFD");
  });
 });

   
});

数据库中增加了 time字段,类型为int,长度为 11;

添加留言时,调用 time()函数返回的ux时间戳,

数据库中读出时,调用 date()函数


[php]  date('Y-m-d H:i:s',$value['time']);//对时间戳进行转换为日期 

 date('Y-m-d H:i:s',$value['time']);//对时间戳进行转换为日期
然后还添加了一个分页代码


[php]  function index() { 
 
    include "page.class.php"; 
             
    $rows = $this->db->count('select * from data'); 
 
    $page = new Page($rows, 5, ""); 
 
    $page -> set("head", "条留言"); 
    $page -> set("first", "首页") 
              -> set("prev", "上一页") 
                      -> set("next", "下一页") 
                      -> set("last", "尾页");          
 
    $list=$this->db 
           ->order('id DESC') 
           ->limit($page->getLimit()) 
           ->select(); 
     
    $this->assign("page",$page->fpage(0,3,4,5,6)); 
    $this->assign("list",$list); 
    $this->assign("title", "我的留言板");    //分配标题变量给头部模板header.tpl  
     
 
    $this->display();                     //包括替换模板中的变量输出模板页面  

  function index() {

   include "page.class.php";
     
   $rows = $this->db->count('select * from data');

   $page = new Page($rows, 5, "");
 
   $page -> set("head", "条留言");
   $page -> set("first", "首页")
            -> set("prev", "上一页")
                    -> set("next", "下一页")
                    -> set("last", "尾页");       
 
   $list=$this->db
       ->order('id DESC')
        ->limit($page->getLimit())
        ->select();
   
   $this->assign("page",$page->fpage(0,3,4,5,6));
   $this->assign("list",$list);
   $this->assign("title", "我的留言板");    //分配标题变量给头部模板header.tpl
   
 
   $this->display();                     //包括替换模板中的变量输出模板页面
  }
效果还不错噢.

page.class.php 源码附上

[php]      /**
        file: page.class.php 
        完美分页类 Page 
        @微凉 QQ496928838
    */ 
    class Page { 
        private $total;                         //数据表中总记录数  
        private $listRows;                      //每页显示行数  
        private $limit;                         //SQL语句使用limit从句,限制获取记录个数  
        private $uri;                           //自动获取url的请求地址  
        private $pageNum;                       //总页数  
        private $page;                          //当前页     
        private $config = array( 
                            'head' => "条记录",  
                            'prev' => "上一页",  
                            'next' => "下一页",  
                            'first'=> "首页",  
                            'last' => "末页" 
                        );                      //在分页信息中显示内容,可以自己通过set()方法设置  
        private $listNum = 10;                  //默认分页列表显示的个数  
 
        /**
            构造方法,可以设置分页类的属性
            @param  int $total      计算分页的总记录数
            @param  int $listRows   可选的,设置每页需要显示的记录数,默认为25条
            @param  mixed   $query  可选的,为向目标页面传递参数,可以是数组,也可以是查询字符串格式
            @param  bool    $ord    可选的,默认值为true, 页面从第一页开始显示,false则为最后一页
         */ 
        public function __construct($total, $listRows=25, $query="", $ord=true){ 
            $this->total = $total; 
            $this->listRows = $listRows; 
            $this->uri = $this->getUri($query); 
            $this->pageNum = ceil($this->total / $this->listRows); 
            /*以下判断用来设置当前面*/ 
            if(!empty($_GET["page"])) { 
                $page = $_GET["page"]; 
            }else{ 
                if($ord) 
                    $page = 1; 
                else 
                    $page = $this->pageNum; 
            } 
 
            if($total > 0) { 
                if(preg_match('/\D/', $page) ){ 
                    $this->page = 1; 
                }else{ 
                    $this->page = $page; 
                } 
            }else{ 
                $this->page = 0; 
            } 
             
            $this->limit = "LIMIT ".$this->getLimit(); 
        } 
 
        /**
            用于设置显示分页的信息,可以进行连贯操作
            @param  string  $param  是成员属性数组config的下标
            @param  string  $value  用于设置config下标对应的元素值
            @return object          返回本对象自己$this, 用于连惯操作
         */ 
        function set($param, $value){ 
            if(array_key_exists($param, $this->config)){ 
                $this->config[$param] = $value; 
            } 
            return $this; 
        } 
         
        /* 不是直接去调用,通过该方法,可以使用在对象外部直接获取私有成员属性limit和page的值 */ 
        function __get($args){ 
            if($args == "limit" || $args == "page") 
                return $this->$args; 
            else 
                return null; 
        } 
         
        /**
            按指定的格式输出分页
            @param  int 0-7的数字分别作为参数,用于自定义输出分页结构和调整结构的顺序,默认输出全部结构
            @return string  分页信息内容
         */ 
        function fpage(){ 
            $arr = func_get_args(); 
 
            $html[0] = " 共 {$this->total} {$this->config["head"]} "; 
            $html[1] = " 本页 ".$this->disnum()." 条 "; 
            $html[2] = " 本页从 {$this->start()}-{$this->end()} 条 "; 
            $html[3] = " {$this->page}/{$this->pageNum}页 "; 
            $html[4] = $this->firstprev(); 
            $html[5] = $this->pageList(); 
            $html[6] = $this->nextlast(); 
            $html[7] = $this->goPage(); 
 
            $fpage = '

'; 
            if(count($arr)                 $arr = array(0, 1,2,3,4,5,6,7); 
                 
            for($i = 0; $i                 $fpage .= $html[$arr[$i]]; 
         
            $fpage .= '
'; 
            return $fpage; 
        } 
         
        /* 格式为 1,5,*/ 
        function getLimit(){ 
            if($this->page > 0) 
                return ($this->page-1)*$this->listRows.", {$this->listRows}"; 
            else 
                return 0; 
        } 
 
        /* 在对象内部使用的私有方法,用于自动获取访问的当前URL */ 
        private function getUri($query){     
            $request_uri = $_SERVER["REQUEST_URI"];  
            $url = strstr($request_uri,'?') ? $request_uri :  $request_uri.'?'; 
             
            if(is_array($query)) 
                $url .= http_build_query($query); 
            else if($query != "") 
                $url .= "&".trim($query, "?&"); 
         
            $arr = parse_url($url); 
 
            if(isset($arr["query"])){ 
                parse_str($arr["query"], $arrs); 
                unset($arrs["page"]); 
                $url = $arr["path"].'?'.http_build_query($arrs); 
            } 
             
            if(strstr($url, '?')) { 
                if(substr($url, -1)!='?') 
                    $url = $url.'&'; 
            }else{ 
                $url = $url.'?'; 
            } 
             
            return $url; 
        } 
 
        /* 在对象内部使用的私有方法,用于获取当前页开始的记录数 */ 
        private function start(){ 
            if($this->total == 0) 
                return 0; 
            else 
                return ($this->page-1) * $this->listRows+1; 
        } 
 
        /* 在对象内部使用的私有方法,用于获取当前页结束的记录数 */ 
        private function end(){ 
            return min($this->page * $this->listRows, $this->total); 
        } 
 
        /* 在对象内部使用的私有方法,用于获取上一页和首页的操作信息 */ 
        private function firstprev(){ 
            if($this->page > 1) { 
                $str = " uri}page=1'>{$this->config["first"]} "; 
                $str .= "uri}page=".($this->page-1)."'>{$this->config["prev"]} ";         
                return $str; 
            } 
 
        } 
     
        /* 在对象内部使用的私有方法,用于获取页数列表信息 */ 
        private function pageList(){ 
            $linkPage = " "; 
             
            $inum = floor($this->listNum/2); 
            /*当前页前面的列表 */ 
            for($i = $inum; $i >= 1; $i--){ 
                $page = $this->page-$i; 
 
                if($page >= 1) 
                    $linkPage .= "uri}page={$page}'>{$page} "; 
            } 
            /*当前页的信息 */ 
            if($this->pageNum > 1) 
                $linkPage .= "{$this->page} "; 
             
            /*当前页后面的列表 */ 
            for($i=1; $i                 $page = $this->page+$i; 
                if($page pageNum) 
                    $linkPage .= "uri}page={$page}'>{$page} "; 
                else 
                    break; 
            } 
            $linkPage .= '
'; 
            return $linkPage; 
        } 
 
        /* 在对象内部使用的私有方法,获取下一页和尾页的操作信息 */ 
        private function nextlast(){ 
            if($this->page != $this->pageNum) { 
                $str = " uri}page=".($this->page+1)."'>{$this->config["next"]} "; 
                $str .= " uri}page=".($this->pageNum)."'>{$this->config["last"]} "; 
                return $str; 
            } 
        } 
 
        /* 在对象内部使用的私有方法,用于显示和处理表单跳转页面 */ 
        private function goPage(){ 
                if($this->pageNum > 1) { 
                return ' '; 
            } 
        } 
 
        /* 在对象内部使用的私有方法,用于获取本页显示的记录条数 */ 
        private function disnum(){ 
            if($this->total > 0){ 
                return $this->end()-$this->start()+1; 
            }else{ 
                return 0; 
            } 
        } 
    } 
 
     
     
     

 /**
  file: page.class.php
  完美分页类 Page
  @微凉 QQ496928838
 */
 class Page {
  private $total;          //数据表中总记录数
  private $listRows;       //每页显示行数
  private $limit;          //SQL语句使用limit从句,限制获取记录个数
  private $uri;            //自动获取url的请求地址
  private $pageNum;        //总页数
  private $page;       //当前页 
  private $config = array(
       'head' => "条记录",
       'prev' => "上一页",
       'next' => "下一页",
       'first'=> "首页",
       'last' => "末页"
      );       //在分页信息中显示内容,可以自己通过set()方法设置
  private $listNum = 10;      //默认分页列表显示的个数

  /**
   构造方法,可以设置分页类的属性
   @param int $total  计算分页的总记录数
   @param int $listRows 可选的,设置每页需要显示的记录数,默认为25条
   @param mixed $query 可选的,为向目标页面传递参数,可以是数组,也可以是查询字符串格式
   @param  bool $ord 可选的,默认值为true, 页面从第一页开始显示,false则为最后一页
   */
  public function __construct($total, $listRows=25, $query="", $ord=true){
   $this->total = $total;
   $this->listRows = $listRows;
   $this->uri = $this->getUri($query);
   $this->pageNum = ceil($this->total / $this->listRows);
   /*以下判断用来设置当前面*/
   if(!empty($_GET["page"])) {
    $page = $_GET["page"];
   }else{
    if($ord)
     $page = 1;
    else
     $page = $this->pageNum;
   }

   if($total > 0) {
    if(preg_match('/\D/', $page) ){
     $this->page = 1;
    }else{
     $this->page = $page;
    }
   }else{
    $this->page = 0;
   }
   
   $this->limit = "LIMIT ".$this->getLimit();
  }

  /**
   用于设置显示分页的信息,可以进行连贯操作
   @param string $param 是成员属性数组config的下标
   @param string $value 用于设置config下标对应的元素值
   @return object   返回本对象自己$this, 用于连惯操作
   */
  function set($param, $value){
   if(array_key_exists($param, $this->config)){
    $this->config[$param] = $value;
   }
   return $this;
  }
  
  /* 不是直接去调用,通过该方法,可以使用在对象外部直接获取私有成员属性limit和page的值 */
  function __get($args){
   if($args == "limit" || $args == "page")
    return $this->$args;
   else
    return null;
  }
  
  /**
   按指定的格式输出分页
   @param int 0-7的数字分别作为参数,用于自定义输出分页结构和调整结构的顺序,默认输出全部结构
   @return string 分页信息内容
   */
  function fpage(){
   $arr = func_get_args();

   $html[0] = " 共 {$this->total} {$this->config["head"]} ";
   $html[1] = " 本页 ".$this->disnum()." 条 ";
   $html[2] = " 本页从 {$this->start()}-{$this->end()} 条 ";
   $html[3] = " {$this->page}/{$this->pageNum}页 ";
   $html[4] = $this->firstprev();
   $html[5] = $this->pageList();
   $html[6] = $this->nextlast();
   $html[7] = $this->goPage();

   $fpage = '

';
   if(count($arr)     $arr = array(0, 1,2,3,4,5,6,7);
    
   for($i = 0; $i     $fpage .= $html[$arr[$i]];
  
   $fpage .= '
';
   return $fpage;
  }
  
  /* 格式为 1,5,*/
  function getLimit(){
   if($this->page > 0)
    return ($this->page-1)*$this->listRows.", {$this->listRows}";
   else
    return 0;
  }

  /* 在对象内部使用的私有方法,用于自动获取访问的当前URL */
  private function getUri($query){ 
   $request_uri = $_SERVER["REQUEST_URI"]; 
   $url = strstr($request_uri,'?') ? $request_uri :  $request_uri.'?';
   
   if(is_array($query))
    $url .= http_build_query($query);
   else if($query != "")
    $url .= "&".trim($query, "?&");
  
   $arr = parse_url($url);

   if(isset($arr["query"])){
    parse_str($arr["query"], $arrs);
    unset($arrs["page"]);
    $url = $arr["path"].'?'.http_build_query($arrs);
   }
   
   if(strstr($url, '?')) {
    if(substr($url, -1)!='?')
     $url = $url.'&';
   }else{
    $url = $url.'?';
   }
   
   return $url;
  }

  /* 在对象内部使用的私有方法,用于获取当前页开始的记录数 */
  private function start(){
   if($this->total == 0)
    return 0;
   else
    return ($this->page-1) * $this->listRows+1;
  }

  /* 在对象内部使用的私有方法,用于获取当前页结束的记录数 */
  private function end(){
   return min($this->page * $this->listRows, $this->total);
  }

  /* 在对象内部使用的私有方法,用于获取上一页和首页的操作信息 */
  private function firstprev(){
   if($this->page > 1) {
    $str = " uri}page=1'>{$this->config["first"]} ";
    $str .= "uri}page=".($this->page-1)."'>{$this->config["prev"]} ";  
    return $str;
   }

  }
 
  /* 在对象内部使用的私有方法,用于获取页数列表信息 */
  private function pageList(){
   $linkPage = " ";
   
   $inum = floor($this->listNum/2);
   /*当前页前面的列表 */
   for($i = $inum; $i >= 1; $i--){
    $page = $this->page-$i;

    if($page >= 1)
     $linkPage .= "uri}page={$page}'>{$page} ";
   }
   /*当前页的信息 */
   if($this->pageNum > 1)
    $linkPage .= "{$this->page} ";
   
   /*当前页后面的列表 */
   for($i=1; $i     $page = $this->page+$i;
    if($page pageNum)
     $linkPage .= "uri}page={$page}'>{$page} ";
    else
     break;
   }
   $linkPage .= '';
   return $linkPage;
  }

  /* 在对象内部使用的私有方法,获取下一页和尾页的操作信息 */
  private function nextlast(){
   if($this->page != $this->pageNum) {
    $str = " uri}page=".($this->page+1)."'>{$this->config["next"]} ";
    $str .= " uri}page=".($this->pageNum)."'>{$this->config["last"]} ";
    return $str;
   }
  }

  /* 在对象内部使用的私有方法,用于显示和处理表单跳转页面 */
  private function goPage(){
       if($this->pageNum > 1) {
    return ' ';
   }
  }

  /* 在对象内部使用的私有方法,用于获取本页显示的记录条数 */
  private function disnum(){
   if($this->total > 0){
    return $this->end()-$this->start()+1;
   }else{
    return 0;
   }
  }
 }

 
 
 
这是一个很强大的分页类噢.虽然样子丑了点,不过,可以改造一下哩

mysql.class.php呢我修改了一下 limit方法,使他可以支持一个参数的,和两个参数的,更方便操作了


[php]  public function limit($offset,$length=null){ 
    if (is_null($length)) { 
        $this->query_list['limit']='limit '.$offset; 
        return $this; 
    }else { 
        if(!isset($length)){ 
            $length = $offset; 
            $offset = 0; 
        } 
            $this->query_list['limit'] = 'limit '.$offset.','.$length; 
            return $this; 
    } 

 public function limit($offset,$length=null){
  if (is_null($length)) {
   $this->query_list['limit']='limit '.$offset;
   return $this;
  }else {
   if(!isset($length)){
    $length = $offset;
    $offset = 0;
   }
    $this->query_list['limit'] = 'limit '.$offset.','.$length;
    return $this;
  }

 

 

还学会了设置时区.


[php] date_default_timezone_set("PRC");            //设置时区(中国 

 date_default_timezone_set("PRC");       //设置时区(中国


修改了 mytpl.class.php 模板引擎,不会造成溢出什么的了


[php]      /**
        file: mytpl.class.php 类名为MyTpl是自定义的模板引擎
        通过该类对象加载模板文件并解析,将解析后的结果输出 
        @微凉 QQ496928838
    */ 
    class MyTpl { 
        public $template_dir = 'view';       //定义模板文件存放的目录    
        public $compile_dir = 'view_c';      //定义通过模板引擎组合后文件存放目录  
        public $left_delimiter  =  '         public $right_delimiter =  '}>';          //在模板中嵌入动态数据变量的右定界符号  
        private $tpl_vars = array();              //内部使用的临时变量  
         
        /** 
            将PHP中分配的值会保存到成员属性$tpl_vars中,用于将板中对应的变量进行替换  
            @param  string  $tpl_var    需要一个字符串参数作为关联数组下标,要和模板中的变量名对应    
            @param  mixed   $value      需要一个标量类型的值,用来分配给模板中变量的值     
        */ 
        function assign($tpl_var, $value = null) {    
            if ($tpl_var != ''){ 
                $GLOBALS[$tpl_var] = $value; 
                $this->tpl_vars[$tpl_var] = $value; 
                 
            } 
 
 
 
        } 
         
        /** 
            加载指定目录下的模板文件,并将替换后的内容生成组合文件存放到另一个指定目录下
            @param  string  $fileName   提供模板文件的文件名                                          
        */ 
         function display($fileName) {  
            /* 到指定的目录中寻找模板文件 */ 
            $tplFile = $this->template_dir.'/'.$fileName;   
            /* 如果需要处理的模板文件不存在,则退出并报告错误 */ 
            if(!file_exists($tplFile)) {                 
                die("模板文件{$tplFile}不存在!"); 
            } 
            /* 获取组合的模板文件,该文件中的内容都是被替换过的 */ 
            $fileNameMd5 = md5($fileName); 
 
            $comFileName = $this->compile_dir."/com_".$fileNameMd5.'.php';   
                    /* 判断替换后的文件是否存在或是存在但有改动,都需要重新创建 */ 
            if(!file_exists($comFileName) || filemtime($comFileName)                 /* 调用内部替换模板方法 */ 
                $repContent = $this->tpl_replace(file_get_contents($tplFile));   
                /* 保存由系统组合后的脚本文件 */ 
                file_put_contents($comFileName, $repContent); 
            } 
            /* 包含处理后的模板文件输出给客户端 */ 
            include($comFileName);               
        } 
         
        /**  
            内部使用的私有方法,使用正则表达式将模板文件''中的语句替换为对应的值或PHP代码 
            @param  string  $content    提供从模板文件中读入的全部内容字符串   
            @return $repContent         返回替换后的字符串
        */ 
        private function tpl_replace($content) { 
            /* 将左右定界符号中,有影响正则的特殊符号转义  例如,转义\ */ 
            $left = preg_quote($this->left_delimiter, '/'); 
            $right = preg_quote($this->right_delimiter, '/'); 
 
            /* 匹配模板中各种标识符的正则表达式的模式数组 */ 
            $pattern = array(        
                /* 匹配模板中变量 ,例如,""  */ 
                '/'.$left.'\s*\$([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)\s*'.$right.'/i',      
                /* 匹配模板中if标识符,例如 " " */ 
                '/'.$left.'\s*if\s*(.+?)\s*'.$right.'(.+?)'.$left.'\s*\/if\s*'.$right.'/ies',  
                /* 匹配elseif标识符, 例如 "" */ 
                '/'.$left.'\s*else\s*if\s*(.+?)\s*'.$right.'/ies',  
                /* 匹配else标识符, 例如 "" */ 
                '/'.$left.'\s*else\s*'.$right.'/is',    
                /* 用来匹配模板中的loop标识符,用来遍历数组中的值,  例如 " " */ 
                '/'.$left.'\s*loop\s+\$(\S+)\s+\$([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)\s*'.$right.'(.+?)'.$left.'\s*\/loop\s*'.$right.'/is', 
                /* 用来遍历数组中的键和值,例如 " $value }> "  */ 
                '/'.$left.'\s*loop\s+\$(\S+)\s+\$([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)\s*=>\s*\$(\S+)\s*'.$right.'(.+?)'.$left.'\s*\/loop \s*'.$right.'/is',  
                /* 匹配include标识符, 例如,'' */ 
                '/'.$left.'\s*include\s+[\"\']?(.+?)[\"\']?\s*'.$right.'/ie'                     
            ); 
             
            /* 替换从模板中使用正则表达式匹配到的字符串数组 */ 
            $replacement = array(   
                /* 替换模板中的变量 tpl_vars["var"]; */ 
                'tpl_vars["${1}"]; ?>',       
                /* 替换模板中的if字符串 */ 
                '$this->stripvtags(\'\',\'${2}\')',      
                /* 替换elseif的字符串 */ 
                '$this->stripvtags(\'\',"")',   
                /* 替换else的字符串 */ 
                '',    
                /* 以下两条用来替换模板中的loop标识符为foreach格式 */ 
                'tpl_vars["${1}"] as $this->tpl_vars["${2}"]) { ?>${3}',   
                'tpl_vars["${1}"] as $this->tpl_vars["${2}"] => $this->tpl_vars["${3}"]) { ?>${4}',     
                /*替换include的字符串*/ 
                'file_get_contents($this->template_dir."/'.$GLOBALS['className'].'/${1}")' 
                         
            ); 
             
            /* 使用正则替换函数处理 */ 
            $s_content=$content; 
 
            $repContent = preg_replace($pattern, $replacement, $content);    
            /* 如果还有要替换的标识,递归调用自己再次替换 */ 
            if(preg_match('/'.$left.'([^('.$right.')]{1,})'.$right.'/', $repContent)) {        
                    if($s_content==$content) { 
                        $repContent = $this->tpl_replace($repContent); 
                    } 
            }  
            /* 返回替换后的字符串 */ 
 
            return $repContent;                                      
        } 
         
         /**
            内部使用的私有方法,用来将条件语句中使用的变量替换为对应的值
            @param  string  $expr       提供模板中条件语句的开始标记           
           

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 채팅 명령 및 사용 방법
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Ubuntu 및 Debian용 PHP 8.4 설치 및 업그레이드 가이드 Ubuntu 및 Debian용 PHP 8.4 설치 및 업그레이드 가이드 Dec 24, 2024 pm 04:42 PM

PHP 8.4는 상당한 양의 기능 중단 및 제거를 통해 몇 가지 새로운 기능, 보안 개선 및 성능 개선을 제공합니다. 이 가이드에서는 Ubuntu, Debian 또는 해당 파생 제품에서 PHP 8.4를 설치하거나 PHP 8.4로 업그레이드하는 방법을 설명합니다.

PHP 개발을 위해 Visual Studio Code(VS Code)를 설정하는 방법 PHP 개발을 위해 Visual Studio Code(VS Code)를 설정하는 방법 Dec 20, 2024 am 11:31 AM

VS Code라고도 알려진 Visual Studio Code는 모든 주요 운영 체제에서 사용할 수 있는 무료 소스 코드 편집기 또는 통합 개발 환경(IDE)입니다. 다양한 프로그래밍 언어에 대한 대규모 확장 모음을 통해 VS Code는

이전에 몰랐던 후회되는 PHP 함수 7가지 이전에 몰랐던 후회되는 PHP 함수 7가지 Nov 13, 2024 am 09:42 AM

숙련된 PHP 개발자라면 이미 그런 일을 해왔다는 느낌을 받을 것입니다. 귀하는 상당한 수의 애플리케이션을 개발하고, 수백만 줄의 코드를 디버깅하고, 여러 스크립트를 수정하여 작업을 수행했습니다.

PHP에서 HTML/XML을 어떻게 구문 분석하고 처리합니까? PHP에서 HTML/XML을 어떻게 구문 분석하고 처리합니까? Feb 07, 2025 am 11:57 AM

이 튜토리얼은 PHP를 사용하여 XML 문서를 효율적으로 처리하는 방법을 보여줍니다. XML (Extensible Markup Language)은 인간의 가독성과 기계 구문 분석을 위해 설계된 다목적 텍스트 기반 마크 업 언어입니다. 일반적으로 데이터 저장 AN에 사용됩니다

JWT (JSON Web Tokens) 및 PHP API의 사용 사례를 설명하십시오. JWT (JSON Web Tokens) 및 PHP API의 사용 사례를 설명하십시오. Apr 05, 2025 am 12:04 AM

JWT는 주로 신분증 인증 및 정보 교환을 위해 당사자간에 정보를 안전하게 전송하는 데 사용되는 JSON을 기반으로 한 개방형 표준입니다. 1. JWT는 헤더, 페이로드 및 서명의 세 부분으로 구성됩니다. 2. JWT의 작업 원칙에는 세 가지 단계가 포함됩니다. JWT 생성, JWT 확인 및 Parsing Payload. 3. PHP에서 인증에 JWT를 사용하면 JWT를 생성하고 확인할 수 있으며 사용자 역할 및 권한 정보가 고급 사용에 포함될 수 있습니다. 4. 일반적인 오류에는 서명 검증 실패, 토큰 만료 및 대형 페이로드가 포함됩니다. 디버깅 기술에는 디버깅 도구 및 로깅 사용이 포함됩니다. 5. 성능 최적화 및 모범 사례에는 적절한 시그니처 알고리즘 사용, 타당성 기간 설정 합리적,

문자열로 모음을 계산하는 PHP 프로그램 문자열로 모음을 계산하는 PHP 프로그램 Feb 07, 2025 pm 12:12 PM

문자열은 문자, 숫자 및 기호를 포함하여 일련의 문자입니다. 이 튜토리얼은 다른 방법을 사용하여 PHP의 주어진 문자열의 모음 수를 계산하는 방법을 배웁니다. 영어의 모음은 A, E, I, O, U이며 대문자 또는 소문자 일 수 있습니다. 모음이란 무엇입니까? 모음은 특정 발음을 나타내는 알파벳 문자입니다. 대문자와 소문자를 포함하여 영어에는 5 개의 모음이 있습니다. a, e, i, o, u 예 1 입력 : String = "Tutorialspoint" 출력 : 6 설명하다 문자열의 "Tutorialspoint"의 모음은 u, o, i, a, o, i입니다. 총 6 개의 위안이 있습니다

PHP에서 늦은 정적 결합을 설명하십시오 (정적 : :). PHP에서 늦은 정적 결합을 설명하십시오 (정적 : :). Apr 03, 2025 am 12:04 AM

정적 바인딩 (정적 : :)는 PHP에서 늦은 정적 바인딩 (LSB)을 구현하여 클래스를 정의하는 대신 정적 컨텍스트에서 호출 클래스를 참조 할 수 있습니다. 1) 구문 분석 프로세스는 런타임에 수행됩니다. 2) 상속 관계에서 통화 클래스를 찾아보십시오. 3) 성능 오버 헤드를 가져올 수 있습니다.

php magic 방법 (__construct, __destruct, __call, __get, __set 등)이란 무엇이며 사용 사례를 제공합니까? php magic 방법 (__construct, __destruct, __call, __get, __set 등)이란 무엇이며 사용 사례를 제공합니까? Apr 03, 2025 am 12:03 AM

PHP의 마법 방법은 무엇입니까? PHP의 마법 방법은 다음과 같습니다. 1. \ _ \ _ Construct, 객체를 초기화하는 데 사용됩니다. 2. \ _ \ _ 파괴, 자원을 정리하는 데 사용됩니다. 3. \ _ \ _ 호출, 존재하지 않는 메소드 호출을 처리하십시오. 4. \ _ \ _ get, 동적 속성 액세스를 구현하십시오. 5. \ _ \ _ Set, 동적 속성 설정을 구현하십시오. 이러한 방법은 특정 상황에서 자동으로 호출되어 코드 유연성과 효율성을 향상시킵니다.

See all articles