File "demo_web.php"

Full Path: /home/humancap/cl.humancap.com.my/vendor/jfcherng/php-diff/example/demo_web.php
File size: 5.61 KB
MIME-type: text/x-php
Charset: utf-8

<?php

declare(strict_types=1);

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;
            }

            <?= 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>