【PHP】從2個字串找到相同的部分,展示最長的字串
阿新 • • 發佈:2018-11-08
思路: 最容易想到的方法,是把第一個字串按順序擷取,與第二個字串對比,存在則寫入陣列,最後再從陣列找到重複之中最長的那個輸出
字串1:/a/b/c/?.oietr?e/f/g/zwty.cn
字串2:/a/b/c/awp.neeg/e/f/g/zxtn.cc
$str1 = '/a/b/c/?.oietr?e/f/g/zwty.cn'; $str2 = '/a/b/c/awp.neeg/e/f/g/zxtn.cc'; $start=0;$end=2; for($i=1;$i<strlen($str1);$i++){ $strpart = substr($str1,$start,$end); if(strpos($str2,$strpart)==true){ $array[]=$strpart; $end++; }else{ $start=$i-1; $end=2; } } $result=''; $c = count($array); for($j=0;$j<$c-1;$j++){ if(substr($array[$j+1],0,-1)!=$array[$j]){ $result .=$array[$j].'<br>'; $str_end=$array[$j]; } } if($array[$c-1]!=$str_end){ $result .=$array[$c-1]; } echo $result;
執行之後:
a/b/c/
e/f/g/z
.c