I created a function that compares string segments and returns the same words in an array:
function palavras_iguais($string1, $string2, $minlen = 5) {
$strlen1 = strlen($string1);
$strlen2 = strlen($string2);
$palavras = array();
for($i=0; $i < $strlen1; $i++) {
$palavra = substr($string1, $i, $minlen);
if (strpos($string2, $palavra) !== false) {
$j = $minlen;
do {
$j++;
} while (strpos($string2, substr($string1, $i, $j)) !== false && $j < $strlen2);
$palavra = substr($string1, $i, $j-1);
$i += strlen($palavra)-1;
$palavras[] = $palavra;
}
}
return $palavras;
}
Test 1:
$primeira = 'asdasdasdTESTEasdasdasdasd';
$segunda = 'lkijlikjTESTEilkjik';
print_r( palavras_iguais($primeira, $segunda) );
// Retorno:
Array
(
[0] => TESTE
)
Test 2:
$primeira = 'asdFINALasdasdTESTEaTESTE2sdasdasdasdTESTENOFINAL';
$segunda = 'lkiTESTE2jlikjTESTEilkjTESikTESTENOFINALjhfdgkFINAL';
print_r( palavras_iguais($primeira, $segunda) );
// Retorno:
Array
(
[0] => FINAL
[1] => TESTE
[2] => TESTE2
[3] => TESTENOFINAL
)
Test 3:
$primeira = 'asdaTSCsdasdTESTEasdasdasdasd';
$segunda = 'lkijlikjTESTEilkjTSCik';
print_r( palavras_iguais($primeira, $segunda, 3) );
// Retorno:
Array
(
[0] => TSC
[1] => TESTE
)