fork(1) download
  1. <?php
  2. function matchingSubstrings($str1, $str2, $minlen=2) {
  3. $grupos = [];
  4. for($i=1; $i<strlen($str1); $i++) {
  5. array_push($grupos, substr($str1, $i-1, $minlen));
  6. }
  7.  
  8. $palavras = [];
  9. $temp = '';
  10. $i = 0;
  11. $j = 0;
  12.  
  13. do {
  14. if($k = strpos($str2, $grupos[$i], $j) !== false) {
  15. $j += $k;
  16. $temp .= $temp === '' ? $grupos[$i] : substr($grupos[$i], -1);
  17. } else {
  18. if($temp !== '') array_push($palavras, $temp);
  19. $temp = '';
  20. $j = 0;
  21. }
  22. $i++;
  23. } while($i<count($grupos));
  24.  
  25. return $palavras;
  26. }
  27.  
  28.  
  29. print_r(matchingSubstrings('nnnabcnnnabcnnn', 'kkkabckkkabc'));
  30. print_r(matchingSubstrings('asdasdasdTESTEasdasdasdasd', 'lkijlikjTESTEilkjik'));
  31. print_r(matchingSubstrings('asdFINALasdasdTESTEaTESTE2sdasdasdasdTESTENOFINAL', 'lkiTESTE2jlikjTESTEilkjTESikTESTENOFINALjhfdgkFINAL'));
  32. print_r(matchingSubstrings('asdaTSCsdasdTESTEasdasdasdasd', 'lkijlikjTESTEilkjTSCik'));
  33.  
  34. ?>
  35.  
Success #stdin #stdout 0.01s 20520KB
stdin
Standard input is empty
stdout
Array
(
    [0] => abc
    [1] => abc
)
Array
(
    [0] => TESTE
)
Array
(
    [0] => FINAL
    [1] => TESTE
    [2] => TESTE2
)
Array
(
    [0] => TSC
    [1] => TESTE
)