2016-08-18 6 views
0

similar_text() 및 levenshtein() 함수를 살펴 보았습니다. 그러나 유사점과 유사도가 백분율로 반환된다는 것만 보입니다.PHP에서 2 개의 문자열 사이의 유사점을 반환하는 간단한 방법이 있습니까?

내가하려고하는 것은 2 개의 문자열을 비교하여 실제로 둘 사이의 유사성을 확인하는 것입니다.

는 기본적으로 :이 멋진 기능이 존재하지 않는 경우

<?php 
$string1 = "IMG_1"; 
$string2 = "IMG_2"; 

echo CompareTheseStrings($string1,$string2); // returns "IMG_"; 

, 무슨 일이 작업을 수행하는 가장 좋은 방법이 있을까요?

내 최종 게임 계획은 파일 이름 목록을 읽은 다음 유사한 텍스트를 사용자가 정의한 것으로 바꾸거나 모두 함께 제거하지만 각 파일의 고유 식별자를 바꾸지는 않습니다.

+3

'implode (array_intersect_assoc (str_split ($ string1), str_split ($ string2))); –

+0

참조 http://stackoverflow.com/questions/321294/highlight-the-difference-between-two-strings-in- ph –

+0

@MarkBaker : 값이'$ string1 = "New_IMG_1"일 때; $ string2 = "Oed_IMG_2";'결과는 ['e_IMG_'] (https://ideone.com/Bwfc4A)입니다. –

답변

-1

preg_match은 - 정규 표현식 매치를 패턴에 주어진 정규 표현식을 대상

검색을 수행합니다.

<?php 
$subject = "abcdef"; 
$pattern = '/^def/'; 
preg_match($pattern, substr($subject,3), $matches, PREG_OFFSET_CAPTURE); 
print_r($matches); 
?> 

결과 :

Array 
(
    [0] => Array 
     (
      [0] => def 
      [1] => 0 
     ) 

) 
+0

질문에 : *** 두 문자열 사이 *** *** – Script47

-3

당신의 '최종 목표'난 당신이 내가 당신이 정말로 않는 str_replace보고해야한다고 생각이 완전히 틀린 방법에 대해려고 생각을 읽는

$string1 = "IMG_1"; 
$string2 = "IMG_2"; 

// you would create a loop here to insert each string 
str_replace("IMG", "NEW_TERM", $string1); 

텍스트를 모두 제거하려면 빈 문자열을 두 번째 매개 변수로 전달하십시오.

+0

맞습니다. 하지만 문제는 첫 번째 매개 변수를 풀려고한다는 것입니다. 텍스트는 "IMG"의 텍스트 일 ​​수 있습니다. 첫 번째 매개 변수가 무엇인지 알았 으면 str_replace()를 실행할 수 있습니다. – MrPlentl

+0

사용자가 "MP3"를 입력 한 다음 str_replace (str_replace ($ userInput, $ newTerm, $ string1))로 전달하면 그냥 입력 한 변수를 전달하십시오. –

+0

"IMG"가 아닌 것 같습니다. 사용자 입력 – Max