本文整理汇总了PHP中Diff::getChanges方法的典型用法代码示例。如果您正苦于以下问题:PHP Diff::getChanges方法的具体用法?PHP Diff::getChanges怎么用?PHP Diff::getChanges使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Diff
的用法示例。
在下文中一共展示了Diff::getChanges方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: testDelta
public function testDelta()
{
// Convert a diff into delta string.
$this->d->setChanges(array(array(Diff::EQUAL, "jump"), array(Diff::DELETE, "s"), array(Diff::INSERT, "ed"), array(Diff::EQUAL, " over "), array(Diff::DELETE, "the"), array(Diff::INSERT, "a"), array(Diff::EQUAL, " lazy"), array(Diff::INSERT, "old dog")));
$text1 = $this->d->text1();
$this->assertEquals("jumps over the lazy", $text1);
$delta = $this->d->toDelta();
$this->assertEquals("=4\t-1\t+ed\t=6\t-3\t+a\t=5\t+old dog", $delta);
// Convert delta string into a diff.
$this->assertEquals($this->d->getChanges(), $this->d->fromDelta($text1, $delta)->getChanges());
// Generates error (19 != 20).
try {
$this->d->fromDelta($text1 . 'x', $delta);
$this->fail();
} catch (\InvalidArgumentException $e) {
}
// Generates error (19 != 18).
try {
$this->d->fromDelta(mb_substr($text1, 1), $delta);
$this->fail();
} catch (\InvalidArgumentException $e) {
}
// Test deltas with special characters.
$this->d->setChanges(array(array(Diff::EQUAL, Utils::unicodeChr(0x680) . " \t %"), array(Diff::DELETE, Utils::unicodeChr(0x681) . " \n ^"), array(Diff::INSERT, Utils::unicodeChr(0x682) . " \\ |")));
$text1 = $this->d->text1();
$this->assertEquals(Utils::unicodeChr(0x680) . " \t %" . Utils::unicodeChr(0x681) . " \n ^", $text1);
$delta = $this->d->toDelta();
$this->assertEquals("=7\t-7\t+%DA%82 %02 %5C %7C", $delta);
// Convert delta string into a diff.
$this->assertEquals($this->d->getChanges(), $this->d->fromDelta($text1, $delta)->getChanges());
// Verify pool of unchanged characters.
$this->d->setChanges(array(array(Diff::INSERT, "A-Z a-z 0-9 - _ . ! ~ * ' ( ) ; / ? : @ & = + \$ , # ")));
$text2 = $this->d->text2();
$this->assertEquals("A-Z a-z 0-9 - _ . ! ~ * ' ( ) ; / ? : @ & = + \$ , # ", $text2);
$delta = $this->d->toDelta();
$this->assertEquals("+A-Z a-z 0-9 - _ . ! ~ * ' ( ) ; / ? : @ & = + \$ , # ", $delta);
// Convert delta string into a diff.
$this->assertEquals($this->d->getChanges(), $this->d->fromDelta("", $delta)->getChanges());
}
示例2: bisectSplit
/**
* Given the location of the 'middle snake', split the diff in two parts and recurse.
*
* @param string $text1 Old string to be diffed.
* @param string $text2 New string to be diffed.
* @param int $x Index of split point in text1.
* @param int $y Index of split point in text2.
* @param int $deadline Time at which to bail if not yet complete.
*
* @return array Array of diff arrays.
*/
protected function bisectSplit($text1, $text2, $x, $y, $deadline)
{
$text1A = mb_substr($text1, 0, $x);
$text2A = mb_substr($text2, 0, $y);
$text1B = mb_substr($text1, $x);
$text2B = mb_substr($text2, $y);
// Compute both diffs serially.
$diffA = new Diff();
$diffA->main($text1A, $text2A, false, $deadline);
$diffB = new Diff();
$diffB->main($text1B, $text2B, false, $deadline);
return array_merge($diffA->getChanges(), $diffB->getChanges());
}
示例3: diff_cleanupEfficiency
/**
* Reduce the number of edits by eliminating operationally trivial equalities.
* Modifies $diffs.
*
* @param array $diffs Array of diff arrays.
*/
public function diff_cleanupEfficiency(&$diffs)
{
$this->diff->setChanges($diffs);
$this->diff->cleanupEfficiency();
$diffs = $this->diff->getChanges();
}