PHPはHTMLを生成します

1 <?php
 2  
3  / * *
 4  
5  生成:<form id = "form"> <label> <b>用户名:</ b> <input name = "usrname"> </ label> </ form>
 6  
7  $ form = Html :: tag( 'form')-> attr(['id' => 'form']);
8  $ label = Html :: tag( 'label');
9  $ b = Html :: tag( 'b');
10  $ input = Html :: tag( 'input')-> attr( 'name'、 'usrname');
11  
12  echo $ form-> add($ label-> add($ b-> add( '用户名:'))-> add($ input))-> make();
 
 
 
  
       ;
19      保護された $ attr = [];
20      保護された $ tag = '' ;
21      保護された $ elements = [];
22      public  $ closings = ['br'、 'hr'、 'input'、 'source'、 'area'、 'base'、 'link'、 'img'、 'meta'、 'basefont'、 'param'、 'col'、 'frame'、 'embed' ];
23  
24      保護された 関数 __construct($ tag ){
 25  
26          $ this- > tag = $ tag ;
  
       $ value ){
 30  
31          return  new  static$ value );
32      }
 33  
34      public  function attr($ name$ value = '' ){
 35  
36          ifis_array$ name )){
 37              $ this- > attr = $ name + $ this- > attr;
38          } else {
 39              $ this-> attr [ $ name ] = $ value ;
40         }
 41  
42          リターンは 、この$ ;
43      }
 44  
45      public  function add($ element ){
 46  
47          $ this- > elements [] = $ element ;
48          $ thisを返し ます。
49     }
 50 51 パブリック関数メイク(){
 52 53 $ ATTR = array_reducearray_keys$この - > ATTR)、関数$キャリー$アイテム){
  
       
         54              $キャリー。= ''。$アイテム。 '='。 '"'。$ This- > attr [ $ item ]。 '"' ;
 55              return  $ carry ;
 56          });
 57  
58          $ html = '<' 。$ this- > tag。$ attr。 '>' ;
 59          // 子要素を反復処理してmakeメソッドを呼び出し、再帰的な
60          foreach$ this- >要素 $ element ){
 61  
62              ifis_object$ element )){
 63                  $ element =$ element- > make();
64              }
 65              $ html。= $ element ;
66          }
 67  
68          if(!in_array$ this- > tag、$ this- > closings))$ html。= '</'。$ this-> tag。 '>' ;
69  
70は         $ htmlを返し  ます。
71 72     }
 73 74 75 } 
  
 

 

おすすめ

転載: www.cnblogs.com/zbseoag/p/12717290.html