2012-11-11 3 views
0

따옴표로 검색을 시작할 때까지 검색된 텍스트를 강조 표시하는 PHP 함수가 있습니다. 그런 다음 슬래시를 추가하지만 그렇게하면 중지됩니다 슬래시 뒤에 나머지 문자열을 매칭하는 것으로부터.php preg_replace 따옴표를 추가하고 따옴표 뒤에 일치하지 않음

예를 들어

:

무엇을 내가하고 싶은 :

검색어 : Ronnie's h

결과 : 로니의 시간

실제 결과 :

로니 'sh

function highlight($needle, $haystack) 
{ 
    $result = preg_replace("/(".preg_quote($needle, "/").")/i", "<strong>$1</strong>", $haystack); 
    return $result; 
} 


echo highlight("ronnie's h", "ronnie's home"); 
+0

그것은'괜찮 http://codepad.org/vooGfwzg – air4x

+0

확인 작동하는 것 같군 : 그것은 훨씬 쉽게 것 <강한 스타일 = "색상 : # 800;">'. 어쩌면'h'가 브라우저에서 눈에 띄게 과감하지 않을 수도 있습니다. – air4x

+0

그래, 색상 일을하는 경우에도 검색에'''을 넣은 후에 텍스트가 굵게 표시되지 않습니다. 하지만 왜 그것이 당신을 위해 코드 패드에서 효과가 있었는지 알 수 없습니다. : \ –

답변

0

왜이 경우 preg_replace을 사용하고 있습니까?

function highlight($needle,$haystack) { 
    return str_replace($needle,"<strong>".$needle."</strong>",$haystack); 
} 
+0

감사합니다. 그리고 두 가지로, 첫째로, 제가 가지고있는 문제는 제가 그렇게 할 때 여전히 존재합니다. 둘째로, 이것은 대소 문자를 구별합니다. –

+0

아, 네, 그렇습니다. 그래서 이유가 있습니다. 그래, 문제가 아직도 일어나지 않는 이유는 잘 모르겠다. 문제를 걱정하기 전에 문제를 해결해 보도록하자. 소스보기 (View Source)를 시도하고 생성 된 HTML이 무엇인지 볼 수 있습니까? –