参考这个函数
if(! function_exists("TextDiff")):
        function TextDiff($old, $new) {
                $mode = true;
                if(! is_array($old)) {
                        $bodyA = explode("\n", $old);
                        $bodyB = explode("\n", $new);
                        $mode = false;
                }else {
                        $bodyA = $old;
                        $bodyB = $new;
                }                $result['added'] = array_diff_assoc($bodyA, $bodyB);
                $result['deleted'] = array_diff_assoc($bodyB, $bodyA);
                if($mode)
                        return $result;
                if(count($result['added']) >= count($result['deleted']))
                        $ar = $result['added'];
                else
                        $ar = $result['deleted'];
                $retval = '';
                foreach($ar as $k=>$v) {
                        $added = isset($result['added'][$k]) ? $result['added'][$k] : "";
                        $deleted = isset($result['deleted'][$k]) ? $result['deleted'][$k] : "";
                        preg_match_all("/[\x81-\xfe]?./",$added,$a1);                        preg_match_all("/[\x81-\xfe]?./",$deleted,$b1);
                        $p = TextDiff($b1[0],$a1[0]);
                        foreach($p['added'] as $key=>$value){
                                $b1[0][$key] = "<font color=lime>$value</font>";
                        }
                        $deleted = join("",$b1[0]);
                        foreach($p['deleted'] as $key=>$value){
                                $a1[0][$key] = "<s><font color=red>$value</font></s>";
                        }
                        $added = join("",$a1[0]);
                        $retval .= "<br><br>第".($k+1)."行";
                        $retval .= "<br>[原文]$added";
                        $retval .= "<br>[新文]$deleted";
                }
                return $retval;
        }
endif;

解决方案 »

  1.   

    windows 下调用 系统 命令 fc
    LINUX 下调用系统命令 diff
      

  2.   

    是這樣,英文沒問題,但中文有此問題,網頁是utf-8編碼的,結果顯示下面這樣:
    \font color=lime>?輯font>??闼/font>?漯font>??伯font>??徼/font>?
      

  3.   

    怎麼改成utf-8碼的?utf-8碼一個漢字是三個字節
      

  4.   

     学习mediawiki的那个没看懂
      

  5.   

    謝謝,改這兩句就支持utf-8編碼了:
    preg_match_all("/[\x01-\x7f]|[\xc0-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xff][\x80-\xbf]{3}/",$added,$a1);preg_match_all("/[\x01-\x7f]|[\xc0-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xff][\x80-\xbf]{3}/",$deleted,$b1);