本文實例講述了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程序設計有所幫助。