Re: [請益] PHP 產生 RTF

看板PHP作者 (Clemond)時間12年前 (2012/05/28 13:08), 編輯推噓0(002)
留言2則, 2人參與, 最新討論串2/12 (看更多)
※ 引述《a613204 (胖胖)》之銘言: : header('Content-type: application/msword;charset=utf-8'); : header('Content-Disposition: inline, filename=app_form.rtf'); : $filename='app.rtf'; : $fp=fopen($filename,'r'); : $output=fread($fp, filesize($filename)); : fclose($fp); : $output=str_replace('<<last_name>>',' '.$row->last_name,$output); : $output=str_replace('<<first_name>>',' '.$row->first_name,$output); : echo $output; : 目前大概是以這種方式產生RTF檔案 : 不過發現如果變數內容是中文的話會變成亂碼 : 請問該怎麼處理呢?? 頁面編碼已經設定成utf8了 我也發生同樣的問題!若用UTF-8編碼的中文取代rtf檔裏面的變數,使用者下載回來 的檔案會發生檔案損毀,無法開檔.我後來用iconv()來將UTF-8的中文字轉成BIG5碼 就可以了.但有些UTF-8的字轉成BIG5會變亂碼,目前這方面我也是無解. 我的作法如下: <?php $Output = file_get_contents("abc.rtf"); $Output = str_replace("<<first_name>>", iconv("utf-8","big5",$row->first_name), $Output ); $Output = str_replace( "<<last_name>>", iconv("utf-8","big5",$row->last_name), $Output); header('Content-type:application/msword;charset=utf-8'); header('Content-Disposition: attachment;filename=abc.doc'); header('Content-Transfer-Encoding: binary'); header('Expires: 0'); header('Cache-Control: must-revalidate'); header('Pragma: public'); ob_clean(); flush(); echo $Output; exit; ?> 希望能拋磚引玉,有那位大大可以指導一下,怎樣才能原汁原味不用將UTF-8 編碼的中文直接取代rtf檔內的變數符號,而不會發生檔案損毀,無法開檔的錯誤. 請指導,謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.72.181.22

05/28 13:21, , 1F
可以試試 - http://goo.gl/A0GYD
05/28 13:21, 1F

05/28 14:24, , 2F
回樓上的大大,剛試過了,沒用.還是檔案無法開啟.謝謝!
05/28 14:24, 2F
文章代碼(AID): #1FmmXFDZ (PHP)
討論串 (同標題文章)
文章代碼(AID): #1FmmXFDZ (PHP)