我知道PHP有很多文本差异,但我还没有找到一个能返回在.中插入的位置的差异
例如
Before: This is a apple
After: This is an apple
'Insertion of a at 8'
.*我想是8*
因此,这种差异应该发生在字符级别。我应该能够从返回中复制"之前"文本中的"之后"文本。
有什么想法吗?提前感谢,
我花了一些时间,为您找到了一个起点:
function string_compare($string1, $string2) {
$chars1 = str_split($string1);
$chars2 = str_split($string2);
$longer = strlen($string1) > strlen($string2) ? $chars1 : $chars2;
$shorter = strlen($string1) > strlen($string2) ? $chars2 : $chars1;
$key_offset = 0;
$changes = array();
foreach($longer as $key => $char) {
#$key2 = $key + $key_offset;
$char2 = isset($shorter[$key]) ? $shorter[$key] : '';
if($char !== $char2) {
if(empty($char2)) {
$changes[$key] = array('remove' => $char);
} elseif(empty($char)) {
$changes[$key] = array('add' => $char);
} else {
$changes[$key] = array('change' => $char.' to '.$char2);
}
}
}
return $changes;
}
唯一的缺点是,它返回了如何将较长字符串转换为较短字符串的更改。
这个功能卡住了,对不起,不要使用它。