https://blog.csdn.net/sphinx1122/article/details/83663634
有更改
# 找到两个字符串完全相同的部分 # 赋值给$longest,当找到有最长的字符串,就替换$longest # 这里的 $len 不能大于$str1的长度,否则可能无限循环, # 由于使用mb_substr()和strpos(),它的$start, $end皆不能大于$len,否则可能无限循环, function longest($str1 = '', $str2 = ''){ $start = 0; $end = 1; $longest = ''; $len = mb_strlen($str1); # $len 不能大于这个数,否则可能无限循环, for($i = 0;$i < $len;){ if($start >= $len) break; if($end > $len) break; $part = mb_substr($str1, $start, $end); if(strpos($str2, $part) !== false){ if(mb_strlen($part) > mb_strlen($longest)) $longest = $part; $end++; }else{ $i++; $start = $i-1; $end = 1; } } return $longest; }