Pergunta

Esta questão já tem uma resposta aqui:

Existem quaisquer bibliotecas (3rd party ou built-in) em PHP para diffs texto calcular?

Foi útil?

Solução

Que tipo de diffs? diffs arquivo? Há array_diff () que atua sobre matrizes. Depois, há também xdiff , que "permite criar e aplicar arquivos de patch contendo as diferenças entre diferentes revisões de arquivos. ". O último age em arquivos ou strings.

Edit: devo acrescentar xdiff não parece estar fora em um comunicado ainda. Você tem que construir a partir da fonte para usá-lo.

Outras dicas

depende exatamente o que você quer dizer eo que você quer fazer, mas existe

PERA Text_Diff - Motor para a execução e prestação de diffs de texto

Há uma agradável e pequena href="http://github.com/paulgb/simplediff" rel="nofollow noreferrer"> projeto que cria texto e HTML diffs.

A saída do este está no formato GNU diff. Ele pode ser o que você está procurando.

É realmente depende do que resultado que deseja. Se tudo que você quer fazer é obter os arquivos diff para dois conjuntos de texto, você pode achar que é mais simples de usar apenas um comando diff externo (que, naturalmente, depende totalmente do ambiente que você está desenvolvendo para).

$diff = `diff $file1 $file2`;

A partir daí, se você quiser usar as informações diff em tudo que você precisa para analisar e esta solução pode não ser o que você está depois. Nesse caso, eu sugiro olhando para a biblioteca PEAR mencionado acima ou à procura de uma biblioteca de texto de análise similar.

o mecanismo de diff do MediaWiki é open source (assim como o resto dela). Se você gosta da maneira Wikipédia diffs alças de texto, pode ser uma solução para você.

Eu realmente gosto deste um baseado JavaScript para projetos web.

jsdifflib

Não construir, mas eu gosto dele porque ele tem essa interface agradável para testar tudo para fora no site, e porque parece ser um pouco mais rápido do que Text_Diff em níveis elevados de granularidade.

http://www.raymondhill.net/finediff/viewdiff-ex.php

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top