當前位置: 首頁>>代碼示例>>PHP>>正文


PHP Diff::getChanges方法代碼示例

本文整理匯總了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());
 }
開發者ID:yetanotherape,項目名稱:diff-match-patch,代碼行數:39,代碼來源:DiffTest.php

示例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());
 }
開發者ID:yetanotherape,項目名稱:diff-match-patch,代碼行數:24,代碼來源:Diff.php

示例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();
 }
開發者ID:yetanotherape,項目名稱:diff-match-patch,代碼行數:12,代碼來源:DiffMatchPatch.php


注:本文中的Diff::getChanges方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。