Find the differences between two texts. Simplifies the problem by
stripping any common prefix or suffix off the texts before diffing.
public main ( string $text1, string $text2, boolean $checklines = true, integer $deadline = null ) : self | ||
$text1 | string | Old string to be diffed. |
$text2 | string | New string to be diffed. |
$checklines | boolean | Optional speedup flag. If present and false, then don't run a line-level diff first to identify the changed areas. Defaults to true, which does a faster, slightly less optimal diff. |
$deadline | integer | Optional time when the diff should be complete by. Used internally for recursive calls. Users should set $this->timeout instead. |
리턴 | self |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ require __DIR__ . "/../../src/DiffMatchPatch/Diff.php"; require __DIR__ . "/../../src/DiffMatchPatch/DiffToolkit.php"; require __DIR__ . "/../../src/DiffMatchPatch/Utils.php"; use DiffMatchPatch\Diff; $size = 'M'; $text1 = file_get_contents(__DIR__ . "/fixtures/{$size}_performance1.txt"); $text2 = file_get_contents(__DIR__ . "/fixtures/{$size}_performance2.txt"); //$text1 = "The quick brown fox jumps over the lazy dog."; //$text2 = "That quick brown fox jumped over a lazy dog."; $timeStart = microtime(1); $diff = new Diff(); $diff->setTimeout(0); $diff->main($text1, $text2, false)->cleanupSemantic(); $timeElapsed = microtime(1) - $timeStart; echo 'Elapsed time: ' . round($timeElapsed, 3) . PHP_EOL; echo 'Memory: ' . round(memory_get_peak_usage() / 1024 / 1024, 3) . PHP_EOL; echo 'Texts length: ' . mb_strlen($text1) . ', ' . mb_strlen($text2) . PHP_EOL; echo 'Diffs count: ' . count($diff->getChanges()) . PHP_EOL . PHP_EOL; $timeStart = microtime(1); $diff = new Diff(); $diff->setTimeout(0); $diff->main($text1, $text2)->cleanupEfficiency(); $timeElapsed = microtime(1) - $timeStart; echo 'Elapsed time: ' . round($timeElapsed, 3) . PHP_EOL; echo 'Memory: ' . round(memory_get_peak_usage() / 1024 / 1024, 3) . PHP_EOL; echo 'Texts length: ' . mb_strlen($text1) . ', ' . mb_strlen($text2) . PHP_EOL; echo 'Diffs count: ' . count($diff->getChanges()) . PHP_EOL . PHP_EOL;