我有以下2个字符串:
orignal string
$orignal_string="Hello world!";
已编辑的字符串:
$edited_string="Hello Ladies!";
如何找到这两个字符串之间的差异,并将差异打印为给定字符串的 Ladies ?
我正在使用strcmp()函数,但它以numbric值返回diffrence。
$orignal_string="Hello world!";
$edited_string="Hello Ladies!";
echo strp($orignal_string,$edited_string);
在php或regex中有没有其他方法可以做到这一点?
答案 0 :(得分:1)
您可以使用explode
和array_diff_assoc
(返回本案例中不同的字词)或array_intersect_assoc
(返回本案例中相同的字词)来查找不同的字词。
$original_string = "Hello world!";
$edited_string = "Hello Ladies!";
$orig = explode(" ", $original_string);
$edit = explode(" ", $edited_string);
$diff = array_diff_assoc($orig, $edit);
$intersect = array_intersect_assoc($orig, $edit);
echo "diff:\n";
print_r($diff);
echo "intersect:\n";
print_r($intersect);
输出:
diff:
Array
(
[1] => world!
)
intersect:
Array
(
[0] => Hello
)
请注意,这仅适用于整个单词。如果在编辑字符串中插入或删除了新单词,则会将整个内容搞砸。这不是一个完全成熟的类似贴片的方法。
对于两个字符串的统一差异,您可能需要查看xdiff_string_diff。
答案 1 :(得分:1)
以下是您要找的xdiff_string_diff
注意:此函数不适用于二进制字符串。要使二进制字符串的差异使用xdiff_string_bdiff()/xdiff_string_rabdiff()
。