示例#1
0
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 = '&nbsp;';
                }
                $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);
}