public function renderDiffToHTML() { $in_offset = 0; ob_start(); foreach ($this->edits as $edit) { $n = $edit->getFromLen(); if ($edit instanceof FineDiffCopyOp) { FineDiff::renderDiffToHTMLFromOpcode('c', $this->from_text, $in_offset, $n); } else { if ($edit instanceof FineDiffDeleteOp) { FineDiff::renderDiffToHTMLFromOpcode('d', $this->from_text, $in_offset, $n); } else { if ($edit instanceof FineDiffInsertOp) { FineDiff::renderDiffToHTMLFromOpcode('i', $edit->getText(), 0, $edit->getToLen()); } else { FineDiff::renderDiffToHTMLFromOpcode('d', $this->from_text, $in_offset, $n); FineDiff::renderDiffToHTMLFromOpcode('i', $edit->getText(), 0, $edit->getToLen()); } } } $in_offset += $n; } return ob_get_clean(); }