summaryrefslogtreecommitdiffstats
path: root/vendor/jfcherng/php-diff/example/demo_web.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/jfcherng/php-diff/example/demo_web.php')
-rw-r--r--vendor/jfcherng/php-diff/example/demo_web.php240
1 files changed, 240 insertions, 0 deletions
diff --git a/vendor/jfcherng/php-diff/example/demo_web.php b/vendor/jfcherng/php-diff/example/demo_web.php
new file mode 100644
index 0000000..7b85ddb
--- /dev/null
+++ b/vendor/jfcherng/php-diff/example/demo_web.php
@@ -0,0 +1,240 @@
+<?php
+
+include __DIR__ . '/demo_base.php';
+
+use Jfcherng\Diff\DiffHelper;
+use Jfcherng\Diff\Factory\RendererFactory;
+
+?>
+<!DOCTYPE html>
+<html>
+
+<head>
+ <meta charset="UTF-8" />
+ <title>jfcherng/php-diff - Examples</title>
+
+ <!-- Prism -->
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1/themes/prism-okaidia.min.css" />
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1/plugins/line-numbers/prism-line-numbers.min.css" />
+
+ <style type="text/css">
+ html {
+ font-size: 13px;
+ }
+ .token.coord {
+ color: #6cf;
+ }
+ .token.diff.bold {
+ color: #fb0;
+ font-weight: normal;
+ }
+
+ <?php echo DiffHelper::getStyleSheet(); ?>
+ </style>
+</head>
+
+<body>
+ <h1>None-level Diff</h1>
+ <?php
+
+ // demo the no-inline-detail diff
+ $inlineResult = DiffHelper::calculate(
+ $oldString,
+ $newString,
+ 'Inline',
+ $diffOptions,
+ ['detailLevel' => 'none'] + $rendererOptions
+ );
+
+ echo $inlineResult;
+
+ ?>
+
+ <h1>Line-level Diff (Default)</h1>
+ <?php
+
+ // demo the word-level diff
+ $inlineResult = DiffHelper::calculate(
+ $oldString,
+ $newString,
+ 'Inline',
+ $diffOptions,
+ ['detailLevel' => 'line'] + $rendererOptions
+ );
+
+ echo $inlineResult;
+
+ ?>
+
+ <h1>Word-level Diff</h1>
+ <?php
+
+ // demo the word-level diff
+ $inlineResult = DiffHelper::calculate(
+ $oldString,
+ $newString,
+ 'Inline',
+ $diffOptions,
+ ['detailLevel' => 'word'] + $rendererOptions
+ );
+
+ echo $inlineResult;
+
+ ?>
+
+ <h1>Character-level Diff</h1>
+ <?php
+
+ // demo the character-level diff
+ $inlineResult = DiffHelper::calculate(
+ $oldString,
+ $newString,
+ 'Inline',
+ $diffOptions,
+ ['detailLevel' => 'char'] + $rendererOptions
+ );
+
+ echo $inlineResult;
+
+ ?>
+
+ <h1>Side by Side Diff</h1>
+ <?php
+
+ // generate a side by side diff
+ $sideBySideResult = DiffHelper::calculateFiles(
+ $oldFile,
+ $newFile,
+ 'SideBySide',
+ $diffOptions,
+ $rendererOptions
+ );
+
+ echo $sideBySideResult;
+
+ ?>
+
+ <h1>Inline Diff</h1>
+ <?php
+
+ // generate an inline diff
+ $inlineResult = DiffHelper::calculateFiles(
+ $oldFile,
+ $newFile,
+ 'Inline',
+ $diffOptions,
+ $rendererOptions
+ );
+
+ echo $inlineResult;
+
+ ?>
+
+ <h1>Combined Diff</h1>
+ <?php
+
+ // generate a combined diff
+ $sideBySideResult = DiffHelper::calculateFiles(
+ $oldFile,
+ $newFile,
+ 'Combined',
+ $diffOptions,
+ $rendererOptions
+ );
+
+ echo $sideBySideResult;
+
+ ?>
+
+ <h1>Unified Diff</h1>
+ <pre><code class="language-diff line-numbers"><?php
+
+ // generate a unified diff
+ $unifiedResult = DiffHelper::calculateFiles(
+ $oldFile,
+ $newFile,
+ 'Unified',
+ $diffOptions,
+ $rendererOptions
+ );
+
+ echo \htmlspecialchars($unifiedResult);
+
+ ?></code></pre>
+
+ <h1>Context Diff</h1>
+ <pre><code class="language-diff line-numbers"><?php
+
+ // generate a context diff
+ $contextResult = DiffHelper::calculateFiles(
+ $oldFile,
+ $newFile,
+ 'Context',
+ $diffOptions,
+ $rendererOptions
+ );
+
+ echo \htmlspecialchars($contextResult);
+
+ ?></code></pre>
+
+ <?php
+
+ // change JSON output settings for better human reading
+ $rendererOptions['outputTagAsString'] = true;
+ $rendererOptions['jsonEncodeFlags'] |= \JSON_PRETTY_PRINT;
+
+ ?>
+
+ <h1>Text JSON Diff</h1>
+ <pre><code class="language-json line-numbers"><?php
+
+ // generate a plain text JSON diff
+ $jsonResult = DiffHelper::calculateFiles(
+ $oldFile,
+ $newFile,
+ 'JsonText',
+ $diffOptions,
+ $rendererOptions
+ );
+
+ echo \htmlspecialchars($jsonResult);
+
+ ?></code></pre>
+
+ <h1>HTML JSON Diff</h1>
+ <pre><code class="language-json line-numbers"><?php
+
+ // generate a HTML JSON diff
+ $jsonResult = DiffHelper::calculateFiles(
+ $oldFile,
+ $newFile,
+ 'JsonHtml',
+ $diffOptions,
+ $rendererOptions
+ );
+
+ echo \htmlspecialchars($jsonResult);
+
+ ?></code></pre>
+
+ <h1>HTML Diff from the Result of JSON Diff</h1>
+ <?php
+
+ $jsonArray = \json_decode($jsonResult, true);
+
+ $htmlRenderer = RendererFactory::make('Inline', $rendererOptions);
+ $inlineResult = $htmlRenderer->renderArray($jsonArray);
+
+ echo $inlineResult;
+
+ ?>
+
+ <!-- Prism -->
+ <script src="https://cdn.jsdelivr.net/npm/prismjs@1/prism.min.js"></script>
+ <script src="https://cdn.jsdelivr.net/npm/prismjs@1/components/prism-diff.min.js"></script>
+ <script src="https://cdn.jsdelivr.net/npm/prismjs@1/components/prism-json.min.js"></script>
+ <script src="https://cdn.jsdelivr.net/npm/prismjs@1/plugins/line-numbers/prism-line-numbers.min.js"></script>
+</body>
+
+</html>