PHP / JS文本差异

前端之家收集整理的这篇文章主要介绍了PHP / JS文本差异前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
首先,这是这四个问题的完全重复:

> Highlight the difference between two strings in PHP
> JavaScript based diff utility
> How to do text DIFF using PHP?
> Calculate text diffs in PHP

看来好像这些问题第一次被问及了,而且我想知道现在是一个很好的工具 – 这样一个比较的日子?我已经看了(除了这些问题):

> https://github.com/nuxodin/diff_match_patch-php
> http://pear.php.net/package/Text_Diff
> https://github.com/paulgb/simplediff/blob/5bfe1d2a8f967c7901ace50f04ac2d9308ed3169/simplediff.php
> http://www.raymondhill.net/finediff/viewdiff-ex.php

但是,我所得到的所有的东西现在都没有了,或者似乎有点狡猾,因为它们没有被使用太多(甚至有些甚至暗示他们不是很好的表现),而是PEAR,我担心.我不喜欢为一个小模块安装PEAR,但它似乎像在自己的窗口中投掷一块砖,以便将其安装到这样一个小模块上,与PEAR相比,一般来说,不仅仅是模块已经被取代并置于不同的渠道(dunno为什么?).我会使用PEAR版本,如果它是我唯一的选择,但我想使用最新的软件包.

有没有人知道一个很好的使用,目前维护或内置功能(即使它是PHP扩展)PHP和/或JavaScript(JQuery)的文本差异?

好吧,已经有一段时间了

我其实决定去看看别的人在使用什么,偶然发现Yii(http://www.yiiframework.com)使用什么.

他们实际上使用PEAR模块作为其text_diff,并且在部门通道上使用它的新形式.看来,text_diff现在是一个部落项目,但您可以轻松地将其版本集成到您的应用程序中,这就是Yii默认情况下(它与其版本预捆绑在一起).

所以我搜索了一下,了解他们如何使用它,以及如何进入它,我遇到了:

public function actionDiff()
{
    Yii::import('gii.components.TextDiff');

    $model=$this->prepare();
    if(isset($_GET['id']) && isset($model->files[$_GET['id']]))
    {
        $file=$model->files[$_GET['id']];
        if(!in_array($file->type,array('PHP','txt','js','css')))
            $diff=false;
        elseif($file->operation===CCodeFile::OP_OVERWRITE)
            $diff=TextDiff::compare(file_get_contents($file->path),$file->content);
        else
            $diff='';

        $this->renderPartial('/common/diff',array(
            'file'=>$file,'diff'=>$diff,));
    }
    else
        throw new CHttpException(404,'Unable to find the code you requested.');
}

在CCodeGenerator为他们的Gii模块(http://www.yiiframework.com/doc/api/1.1/CCodeGenerator/).重要的部分是它们实际挂接在PEAR模块中的位置:

$diff=TextDiff::compare(file_get_contents($file->path),$file->content);

通过读取产生差分输出的两个文件内容.

原来我不想使用PEAR因为膨胀,但是这个模块对于全功能的te​​xt_diff来说相当纤薄,所以我决定用这个.不仅如此,在这一刻,它是唯一一个真正为我工作的text_diff模块,所以我保持最好的,即使最好的是相当的记忆饥饿.

猜你在找的PHP相关文章