tOm ArNfElD
을 검색하고 $variable
이 "Tom Arnfeld"인 경우, 대소 문자를 구분하지 않고 LIKE
의 결과를 얻습니다.텍스트 감싸기 - PHP로 대소 문자 구별
$variable
에 일치하는 텍스트를 <span></span>
으로 묶어서 어떻게 검색 결과와 일치하는 항목을 표시 할 수 있습니까? $variable
의 원래 사례를 유지해야합니다.
tOm ArNfElD
을 검색하고 $variable
이 "Tom Arnfeld"인 경우, 대소 문자를 구분하지 않고 LIKE
의 결과를 얻습니다.텍스트 감싸기 - PHP로 대소 문자 구별
$variable
에 일치하는 텍스트를 <span></span>
으로 묶어서 어떻게 검색 결과와 일치하는 항목을 표시 할 수 있습니까? $variable
의 원래 사례를 유지해야합니다.
$textToPrint = preg_replace("/({$variable})/i","<span class"myclass">$1</span>,$text);
도움이 될 것입니다
당신이 (비록, preg_quote()
문자열을 잊지 마세요) 전체 문자열을 교체하거나 정규 표현식에 LIKE-매개 변수를 변환 preg_replace()
사용하려는 경우가 str_ireplace()
를 사용할 수 있습니다.
예 사용하여 정규 표현식 :
$parts = explode('%', $likeQuery)
foreach ($parts as &$innerString) {
$innerParts = explode('_', $innerString);
foreach ($innerParts as &$part) {
$part = preg_quote($part, '/');
}
// always unset references when you're done with them
unset($part):
$innerString = implode('.', $innerString);
}
// always unset references when you're done with them
unset($innerString):
$regex = implode('.*?', $parts);
$transformedString = preg_replace("/$regex/", '<span>$0</span>', $stringToTransform);
나는 정규 표현식을 사용 :
$text = preg_replace('~(' . preg_quote($search, '~') . ')~i', '<span>$1</span>', $text);
다른 방법은 하나 soulmerge suggested (str_ireplace()
)처럼, 너무있다 :
$text = str_ireplace($search, '<span>' . $search . '</span>', $text);
grrr ... 다른 사람이 먼저 답변을 작성하는 동안 – Andreas
가 완벽하게 작동합니다! – tarnfeld
이것은 잠재적으로 허위이며,'preg_quote()'를 사용하여)'$ variable'을 탈출하지 않을 것입니다. –