funsoul/funcompare

A tool compare text differences

1.2 2018-02-28 08:46 UTC

This package is not auto-updated.

Last update: 2024-10-04 05:15:54 UTC


README

A tool compare text differences

Installation

composer require "funsoul/funcompare: ~1.1"

Usage

compareText()

use Funsoul\Funcompare\Funcompare;

$old = 'A tool compare text differences is funny';
$new = 'A tool that compare text differences';

$fc = new Funcompare();
$res = $fc->compareText($old, $new);
echo $res;

// A tool <span class="new-word">that</span> compare text differences <span class="old-word">is</span> <span class="old-word">funny</span>

compareJson()

use Funsoul\Funcompare\Funcompare;

$old = '[{"id":1,"name":"xxx","age":18,"cart":[{"id":100,"name":"rice"}]},{"id":2,"name":"aaa","age":18}]';
$new = '[{"id":1,"name":"yyy","age":20,"cart":[{"id":100,"name":"banana"}]},{"id":2,"name":"bbb","age":18}]';

$fc = new Funcompare();
$res = $fc->compareJson($old, $new);
echo $res

// [{"name":{"old":"<span class=\"old-word\">xxx</span>","new":"<span class=\"new-word\">yyy</span>"},"age":{"old":"<span class=\"old-word\">18</span>","new":"<span class=\"new-word\">20</span>"},"cart":[{"name":{"old":"<span class=\"old-word\">rice</span>","new":"<span class=\"new-word\">banana</span>"}}]},{"name":{"old":"<span class=\"old-word\">aaa</span>","new":"<span class=\"new-word\">bbb</span>"}}]
[
    {
        "name":{
            "old":"<span class="old-word">xxx</span>",
            "new":"<span class="new-word">yyy</span>"
        },
        "age":{
            "old":"<span class="old-word">18</span>",
            "new":"<span class="new-word">20</span>"
        },
        "cart":[
            {
                "name":{
                    "old":"<span class="old-word">rice</span>",
                    "new":"<span class="new-word">banana</span>"
                }
            }
        ]
    },
    {
        "name":{
            "old":"<span class="old-word">aaa</span>",
            "new":"<span class="new-word">bbb</span>"
        }
    }
]

css

<style>
    .new-word{background:rgba(245,255,178,1.00)}
    .new-word:after{content:' '; background:rgba(245,255,178,1.00)}
    .old-word{text-decoration:none; position:relative}
    .old-word:after{
        content: ' ';
        font-size: inherit;
        display: block;
        position: absolute;
        right: 0;
        left: 0;
        top: 55%;
        bottom: 30%;
        border-top: 1px solid #000;
        border-bottom: 1px solid #000;
    }
</style>

wrapper()

use Funsoul\Funcompare\Funcompare;

$old = 'A tool compare text differences is funny';
$new = 'A tool that compare text differences';

$fc = new Funcompare();
$res = $fc->wrapper('[',']','<','>')->compareText($old, $new);
echo $res;

// A tool <that> compare text differences [is] [funny]

License

MIT