function do_update_diff($pagestr, $poststr, $original) { $obj = new line_diff(); $obj->set_str('left', $original, $pagestr); $obj->compare(); $diff1 = $obj->toArray(); $obj->set_str('right', $original, $poststr); $obj->compare(); $diff2 = $obj->toArray(); $arr = $obj->arr_compare('all', $diff1, $diff2); if (PKWK_DIFF_SHOW_CONFLICT_DETAIL) { global $do_update_diff_table; $table = array(); $table[] = <<<EOD <p>l : between backup data and stored page data.<br /> r : between backup data and your post data.</p> <table class="style_table"> <tr> <th>l</th> <th>r</th> <th>text</th> </tr> EOD; $tags = array('th', 'th', 'td'); foreach ($arr as $_obj) { $table[] = ' <tr>'; $params = array($_obj->get('left'), $_obj->get('right'), $_obj->text()); foreach ($params as $key => $text) { $text = htmlspecialchars(rtrim($text)); if (empty($text)) { $text = ' '; } $table[] = ' <' . $tags[$key] . ' class="style_' . $tags[$key] . '">' . $text . '</' . $tags[$key] . '>'; } $table[] = ' </tr>'; } $table[] = '</table>'; $do_update_diff_table = implode("\n", $table) . "\n"; unset($table); } $body = array(); foreach ($arr as $_obj) { if ($_obj->get('left') != '-' && $_obj->get('right') != '-') { $body[] = $_obj->text(); } } return array(rtrim(implode('', $body)) . "\n", 1); }