2012-08-23 7 views
1

내 경우에 존재하는 방법을 비교하기 위해 다음과 같이이다 :PHP : 단어 중 하나가이 문자열

<?php 
$var1 = "Top of British"; 
$var2 = "Welcome to British, the TOP country in the world"; 

$var1 = strtolower($var1); 
$var2 = strtolower($var2); 

if (strpos($var1, $var2) !== FALSE) { 
echo "TRUE"; 
} 
?> 

는 작동하지, 내가 TOP 또는 영국이 모두 문자열에 존재한다 감지 어떻게?

+0

분할 단어의 첫 번째 문자열을 하나 하나 (즉 obvi하지 않습니다 확인 ous?) – zerkms

+2

''Top of British ''은 그 문자열에 아무 것도 없으므로 예상됩니다. 그래서 ... 'TOP'또는 'British', 'Top'또는 'of'또는 'British', 아니면 ...을 원하십니까? (질문을 더 명확하게 설명하십시오.) – Ryan

+0

스왑 행 $ var1 및 $ var2 :'strpos ($ var2, $ var1) ' – khomyakoshka

답변

2

단어를 찾고 각을 통해 다음 루프를 문자열의 배열로 공백 문자의 각 문자열을 폭발, 소문자로 모두 변환, 문자열에서 구두점을 제거하는 것은 일치 :

$var1 = preg_replace('/[.,]/', '', "Top of British"); 
$var2 = preg_replace('/[.,]/', '', "Welcome to British, the TOP country in the world"); 


$words1 = explode(" ",strtolower($var1)); 
$words2 = explode(" ",strtolower($var2)); 

foreach ($words1 as $word1) { 
    foreach ($words2 as $word2) { 
     if ($word1 == $word2) { 
      echo $word1."\n"; 
      break; 
     } 
    } 
} 

DEMO를 :

+0

이 것이 가장 적합합니다. 고맙습니다 :) – Redbox

0

http://codepad.org/YtDlcQRA 문자열

<?php 
$var1 = "Top of British"; 
$var2 = "Welcome to British, the TOP country in the world"; 

$var1 = strtolower($var1); 
$var2 = strtolower($var2); 

if (strpos($var1, 'top') && strpos($var1, 'british')) { 
echo "Either the word TOP or the word BRITISH was found in string 1"; 
} 
?> 

에 TOP 또는 영국을 찾으려면 더 일반적으로 1

<?php 
$var1 = explode(' ', strtolower("Top of British")); 
$var2 = "Welcome to British, the TOP country in the world"; 

$var2 = strtolower($var2); 

foreach($var1 as $needle) if (strpos($var2, $needle)) echo "At least one word in str1 was found in str 2"; 

?> 
0
이 문구의 단어의 교회법을 확인하기위한

일반적인 예는 ... 당신이 "의"와 같은 쓸모없는 스톱 - 단어에 대한 결과에서 확인할 수 있습니다 문자열의 사람들과 문자열이 단어를 일치하거나

<?php 
$var1 = "Top of British"; 
$var2 = "Welcome to British, the TOP country in the world"; 

$words1 = explode(' ', strtolower($var1)); 
$words2 = explode(' ', strtolower($var2)); 

$iWords = array_intersect($words1, $words2); 

if(in_array('british', $iWords) && in_array('top', $iWords)) 
    echo "true"; 
0

PHP는 두 개의 배열의 구성원 요소를 찾기위한 기능이 "을":

$var1 = explode(" ", strtolower("Top of British")); 
$var2 = explode(" ", strtolower("Welcome to British, the TOP country in the world")); 
var_dump(array_intersect($var1, $var2)); // array(1) { [0]=> string(3) "top" }