整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          用php生成HTML文件的類

          用PHP生成HTML文檔, 支持標簽嵌套縮進, 支持標簽自定義屬性

          起因

          這個東西確實也是心血來潮寫的, 本來打算是輸出HTML片段用的, 但后來就干脆寫成了一個可以輸出完整HTML的功能;

          我很滿意里邊的實現縮進的機制, 大家有用到的可以看看

          p.s. 現在都是真正的前后端分離了(vue, nodejs, webpack...), 這個東西喜歡就用, 不喜歡就算了~

          支持的標簽

          html, head, meta, title, body, input, select/option, form, table, div, 注釋, 以及 自定義標簽(成對出現的標簽), 還有一大堆屬性(在下邊有介紹)

          實現

          整體

          1.每個標簽都對應一個類, 比如 標簽<html>, 對應了一個叫html的類

          2.標簽中有用到的屬性, 我都放到了一個類中了, 并提供了方法去獲取賦了值的屬性

          嵌套縮進

          每個標簽我都設計了一個類, 比如 table 標簽, 就有一個叫table的類與之對應

          每個類里邊一般都有以下3個重要成員:

          1.本標簽的縮進值

          2.輸出本標簽最終字符串的方法, out()

          3.給本標簽添加子標簽的方發, append()

          其中append()接收的是子標簽的對象, 在最終調用$html->out()的時候, 每個子標簽對象里的out()方法會被依次調用, 縮進值也會從上層類傳遞到最下層類并累加;

          另外, 每個類都包含了屬性類(calss attribute ), 每個類的縮進值是從屬性類里繼承而來的, 所以如果修改了屬性類里的縮進量, 所有類的縮進量就跟著改變了

          你也可以給標簽類添加一個自己的縮進值來覆蓋統一的縮進值

          屬性

          我這里的方案是定義一個類(calss attribute ), 里邊有

          1.標簽可能擁有的屬性

          2.對應的setXxx方法

          3.組裝非空的屬性拼成字符串的方法

          4.為了不影響下次顯示, 會有專門的清空方法, 把之前賦值的屬性都清空

          這樣的話, 在定義標簽屬性的時候, 需要的就賦上值, 不需要的不賦值就不會在最終的HTML代碼中顯示出來

          源碼地址: 傳到碼云了,看其中的test.php文件,是介紹他的用法。

          以上就是用php生成HTML文件的類的詳細內容,更多請關注其它相關文章!

          更多技巧請《轉發 + 關注》哦!

          ompdf是一個可以將HTML生成PD并保留樣式效果的PHP第三方擴展。

          下面就一步步講解如何使用:

          一、通過composer安裝

          composer require dompdf/dompdf


          安裝過程

          二 、編寫測試代碼

          (1)引用autoload.php

          include 'vendor/autoload.php'; 

          (2)實例化Dompdf

          $dompdf=new \Dompdf\Dompdf();

          (3)加載HTML

          $dompdf->loadHtml($html); //$html 為HTML字符串

          (4)設置紙張和方向

          $dompdf->setPaper('A4', 'landscape'); //紙張大小和紙張方向

          (5)生成PDF并下載

           $dompdf->render();
          $dompdf->stream('數據字典.pdf');

          三、導出PDF測試,發現中文亂碼了


          導出PDF發現中文亂碼了

          四、解決中文亂了問題

          (1)下載支持中文的字體包放到根目錄下(和vendor目錄同級),這里演示使用的是阿里巴巴的普惠字體(字體格式是ttf的,小編原先下載使用的字體格式是otf格式的無效)

          (2)下載dompdf字體安裝工具解壓到根目錄(和vendor目錄同級)

          下載地址:https://github.com/dompdf/utils

          (3)在命令行(CMD定位到根目錄)下執行命令

          php load_font.php "puhui" Alibaba-PuHuiTi-Light.ttf

          執行成功后在路徑(vendor\dompdf\dompdf\lib\fonts)下就會出現剛才的字體

          (4)在樣式文件中指定使用剛才安裝的字體

          body{font-family:puhui;}

          (5)再次導出PDF測試成功


          亂碼問題解決

          PDF是一個強大的生成PDF的PHP類庫,基于FPDF和Html2FPDF,基本兼容css3和HTML標簽。

          pdf模塊是基于mPDF封裝的YiAdmin模塊。

          獲取MPDF實例

          $pdf = ev('Pdf');

          保存為PDF文件

          // 保存到public目錄 前臺可訪問
          $filepath =  ev('PdfSave', '<h1>Hello YiAdmin</h1>', ‘path/file.pdf’, true);
          
          // 保存到runtime目錄 前臺不可訪問
          $filepath = ev('PdfSave', '<h1>Hello YiAdmin</h1>', ‘path/file.pdf’, false);

          瀏覽器輸出


          主站蜘蛛池模板: 婷婷国产成人精品一区二| 日韩精品一区二区亚洲AV观看| 日韩精品一区二区三区大桥未久 | 亚洲AV无码一区二区乱子伦| 一区二区三区观看免费中文视频在线播放 | 精品一区狼人国产在线| 清纯唯美经典一区二区| 无码午夜人妻一区二区不卡视频| 亚洲一区二区视频在线观看| 无码中文人妻在线一区| 中文字幕无码一区二区免费| 日韩精品无码一区二区中文字幕| 欧美人妻一区黄a片| 人妻少妇久久中文字幕一区二区| 一本久久精品一区二区| 中文字幕一区二区三区在线观看 | 精品乱人伦一区二区三区| 狠狠综合久久av一区二区| 亚洲一区中文字幕在线电影网| 国产亚洲一区二区手机在线观看 | 中文字幕一区二区三区视频在线 | 中文国产成人精品久久一区| 精品成人一区二区三区免费视频| 日韩在线一区二区| 精品午夜福利无人区乱码一区| 久久99国产精品一区二区| 精品福利一区二区三区| 国产一区视频在线| 无码一区二区三区免费| AA区一区二区三无码精片 | 2018高清国产一区二区三区| 精品永久久福利一区二区| 亚洲一区在线免费观看| 欧美人妻一区黄a片| 一本色道久久综合一区| 日本免费电影一区二区| 日韩一区二区在线视频| 亚洲AV无码一区二区三区国产| 国产午夜精品一区二区| 精品福利视频一区二区三区| 国产福利一区二区三区|