將RTF格式的檔案轉成HTML並在網頁中顯示的程式碼它是這樣運作的,將一個RTF檔案上傳,然後轉成HTML顯示出來,程式碼有點複雜,teaman還要好好研究,好像中文版有點問題。 if(!($userfile)) { ?>; $html .= " "; $bullets = $. $tags = ereg_replace("\(tab)", "", $tags); } $tags = ereg_replace("\par", "", $tags); } elseif($line - $bullets == 1) { $html .= " "; $tags = ereg_replace("\par", "", $tags); "\(tab)", "", $tags); $子彈; } else { 0; } } // 轉換粗體。 if(ereg("\b0", $tags)){ $html .= ""; } elseif(ereg("\b", $tags)) { $html .= ""; } // 轉換斜體。 if(ereg("\i0", $tags)){ $html .= ""; } elseif(ereg("\i", $tags)) { $html .= ""; } // 轉換底線。 if(ereg("\ulnone", $tags)){ $html .= ""; } elseif(ereg("\ul", $tags)){ $html .== ""; } // 轉換對齊方式。 if(ereg("\pard\qc", $tags)) { $html .= ""; } elseif(ereg("\pard\qr", $tags)) { $html .= ""; } elseif(ereg("\pard", $tags)){ $html .= ""; } /// 從標籤中刪除pard,這樣它就不會與par 混淆。 $tags = ereg_replace("\pard", "", $tags); // 轉換換行符號。 if(ereg("\par", $tags)){ $html .= ""; } // 使用色表來捕捉字體 // // 使用色表來捕捉字體 // // 使用色表來捕捉字體 // if(ereg("\cf[0-9]", $tags)) { 全域$fcolor; $numcolors = count($fcolor) $numcolors = count($fcolor) $numcolors = count($fcolor) ; ; $i $test = "\cf" . ($i 1); if(ereg($test, $tags)) { if(ereg($test, $ $color = $ fcolor[$i]; } } } // 捕捉字體大小變化。 if(ereg("\fs[0-9][0-9]", $tags, $temp)) { $size = ereg_replace("\fs", "", $temp[0 ]); $size /= 2; if($size elseif($size elseif($size elseif($size . ; } elseif($size elseif($size } // 若字體顏色或大小變更 // nge,且立即變更字體標籤。 if(ereg("(\cf[0-9])||(\fs[0-9][0-9])", $tags)) { $html .= ""; } // 將製表符替換為交替空格 // if(ereg("\(tab)", $tags)) { $html .= " "; } > // 將\ 替換為 $word = ereg_replace("[\]{2,}", "\", $word); /// 將{ 替換為{ /// 將{ 替換為{ ///place_$ { // 將} 替換為} $word = ereg_replace("[\][}]", "}", $ word); // 將2 個空格換成1 個空格。 $word = ereg_replace(" ", " ", $word); 返回$word; } $color = "000000"; $大小= 1; $項目符號= 0; // 將上傳的檔案讀入陣列。 // $rtfile = file($userfile); $fileLength = count($rtfile) $fileLength = count($rtfile) = 1; $ i /* ** 如果該行包含「colortbl」然後我們找到了色表。 ** 我們必須將其分成單獨的紅色、綠色和藍色 ** 將其轉換為十六進制,然後將紅色、綠色和藍色重新組合在一起。 ** 然後將每個值儲存到名為 fcolor 的陣列中。 */ if(ereg("^{\colortbl", $rtfile[$i])) { // 以反斜線分割此行。 $colors =explode("\", $rtfile[$i]); $numOfColors = count($colors); for($k = count($colors); for($k = count($colors); for($k = numOf ) { // 找出 // 這裡有幾個不同的顏色。 if(ereg("[0-9] ", $colors[$k], $matches)) { $match[] = $mat[0]; $match[] = $mat5[0]; } 🎜> // 每種顏色,將其轉換為十六進位。 $numOfColors = count($match); for($k = 0; $k $red = dechex($m $red = $match[$k] $green = dechex($match[$k 1]); $green = $match[$k 1] $blue = dechex($match[$k 2]); $blue = $match[$k 2] $fcolor[] = "$red$green$blue"; } $numOfah} // 否則,我們解析該行,將 // 從單字和標籤中拉出。 else { $token = ""; $start = 0; if($rtfile[$i][$start] == "\" && $rtfile[$i][$ start 1] != "\") { // 我們現在正在處理一個標籤。 $token .= $rtfile[$i][$k]; if($rtfile[$i][$k] = " ") { ProcessTags($token, $i); $token = ""; $start = $k 1; } $newFile[$i] .= ProcessTags($token, $i); $token = ""; i][$start] == "{") { // 我們現在正在處理一個標籤。 $token .= $rtfile[$i][$k]; if($rtfile[$i][$k] == "}") { $newFile[$i]. = ProcessTags($token, $i); $token = ""; $start = $k 1; } if($rtfile[$i][$k] == "\" && $rtfile[$i][$k 1] != "\" && $rtfile[$i][$k - 1] != "\") { $newFile[$i] .= ProcessWord($token); $token = $rtfile[$i][$k]; $token = $rtfile[$i][$k]; } else { $token .= $rtfile[$i][$k]; } } $limit = sizeof($newFile); for($i = 0; $i print("$newFile[$i]n"); print("$newFile[$i]n"); print("$newFile 🎜> ? >