本文實例講述了php導出生成word的方法。分享給大家供大家參考,具體如下:
PHP導出word
(1)首先,預覽html頁面,示例化對象,定義要導出的數據
(2)點擊下載頁面,給id傳值(任何值均可,僅用於判斷),如果id有值,輸出緩沖文件,保存為word格式。
(3)點擊下載後,(如果是圖片的話,在保存為word時要使用絕對路徑,這樣才可以在保存的word中正常顯示)
(4)關閉緩存輸出
Word_con.php 預覽要導出的html文件
<?php if(@$_GET[id]!='') { include('word_fun.php'); $word=new word();//示例化對象 $word->start();//定義要保存數據的開始 } include('word_show.php'); if(@$_GET[id]!='') { $word->save('word_c.doc');//定義要保存數據的結束,同時把數據保存到word中 } if(@$_GET[id]=='') { //超鏈接中的x僅僅是為了傳一個值,確認下載,沒有其他的實際yi ?> <a href="#"><div onclick="window.location.href='word_con.php?id=x'">點擊跳到下載頁面</div></a> <?php }else{ echo "<a href=\"word_c.doc\">下載</a>"; } ?>
Word_fun.php 導出word相關函數
<?php class word { function start() //定義要保存數據的開始 { ob_start(); //開始輸出緩沖 //設置生成word的格式 print '<html xmlns="urn:schemas-microsoft-comfficeffice" xmlns:w="urn:schemas-microsoft-comffice:word" xmlns="http://www.w3.org/TR/REC-html40">'; } function save($path) //定義要保存數據的結束,同時把數據保存到word中 //所要保存的數據必須限定在該類的start()和save()之間 { print "</html>"; $data=ob_get_contents(); //返回內部緩沖的內容 即把輸出變成字符串 ob_end_clean(); //結束輸出緩沖,清潔(擦除)輸出緩沖區並關閉輸出緩沖 $this->wirtetoword($path,$data); } function wirtetoword($fn,$data) //將數據已二進制的形式保存到word中 { $fp=fopen($fn,"wb"); fwrite($fp,$data); fclose($fp); } } ?>
Word_show.php 連接數據庫,查詢相關數據
<?php include('conn.php'); //連接數據庫 $sq="select zf_content from zf where `zf_id`=137"; $sql=mysql_query($sq); while(($que=mysql_fetch_array($sql))!=false) { echo "<font color=\"red\">hahaahahha</font>"; echo $que['zf_content']; } ?>
希望本文所述對大家PHP程序設計有所幫助。