2011-06-07 18 views

回答

4

已經找到了解決 - 通過從WordPress的取WP_Text_Diff_Renderer_Table類(WP-包括/可溼性粉劑diff.php),其被一起選擇中使用PEAR討論Text_Diff--:

$diff = new Text_Diff('auto', array($lines1, $lines2)); 
$render = new WP_Text_Diff_Renderer_Table; 
echo $render->render($diff); 

當包裹在標記上面的代碼產生與上面的WordPress截圖相同的HTML佈局。有然後是四個CSS規則,樣式:

  • 爲.diff-deletedline - 即從 改變 段落/行的源文本
  • 爲.diff-addedline - 這是在改變的段落/行 目的地 文本
  • 德爾 - 個別單詞從源頭上改變
  • 插件 - 個別詞,是 在目的地改變

更多細節在這裏:http://www.webdevguides.co.uk/php-2/wordpress-style-diff-in-php

3

我finediff.php的作者,你指的是您的文章。使用PHP FineDiff類的解決方案非常簡單:使用庫存渲染器FineDiff :: renderDiffToHTMLFromOpcodes()獲取diff的HTML字符串,比在兩個不同的DIV中使用相同的結果字符串,每個CSS樣式都適當,就像所以:

<?php 
    ... 
    $diff = FineDiff::getDiffOpcodes($fromText, $toText); 
    $diffHTML = FineDiff::renderDiffToHTMLFromOpcodes($fromText, $diff); 
    ?> 
<div id="from"><?php echo $diffHTML; ?></div> 
<div id="to"><?php echo $diffHTML; ?></div> 

然後是造型的問題適當地給你希望的東西只顯示:

#from ins {display:none} 
#to del {display:none} 

編輯:關於第二個想法,我知道你可能希望雙方進行適當固定在一起,我的解決方案不會這樣做。