- substr: documentation ( source)
- var_dump: documentation ( source)
- strpos: documentation ( source)
- error_reporting: documentation ( source)
- strrpos: documentation ( source)
<?php
error_reporting(0);
function f($s){while(!$a&&++$i<strlen($s))for($j=0;$b=substr($s,$j++,$i);)strpos($s,$b)==strrpos($s,$b)&&($a[]=$b);return$a;}
echo "------\n";
var_dump(f("")); echo "\n"; // -> [""]
var_dump(f("abcaa")); // -> ["b","c"]
var_dump(f("rererere")); echo "\n"; // -> ["ererer"]
var_dump(f("asdfasdfd")); echo "\n"; // -> ["fa","fd"]
var_dump(f("ffffhhhhfffffhhhhhfffhhh")); echo "\n"; // -> ["hffff","fffff","hhhhh","hfffh"]
var_dump(f("asdfdfasddfdfaddsasadsasadsddsddfdsasdf")); echo "\n"; // -> ["fas","fad","add","fds"]
echo "------\n";