2013-10-19 5 views
0

나는 검색 입력이 있고 스크립트가 결과를 보여줄 때 내가 굵게 표시하고 키워드에 밑줄을 긋기를 원합니다.PHP str_replace 문자를 html로

$showkey = str_replace(ucfirst($_POST['station']), '<b><u>'.htmlentities(ucfirst($_POST["station"]), ENT_QUOTES).'</u></b>', $founds["fullname"][$i]); 
$showkey = str_replace(lcfirst($_POST["station"]), '<b><u>'.htmlentities(lcfirst($_POST["station"]), ENT_QUOTES).'</u></b>', $founds["fullname"][$i]); 

따라서, 예를 들어 : $ _POST [ "역"] '난'의 경우 내가 모든 리터를 원하고 L 굵게 밑줄 그래서이 스크립트가 있습니다. 이제는 작동하지 않습니다. 작은 'l'만 굵게 표시되고 밑줄이 그어져 있습니다. 스크립트가 다음과 같은 경우 :

$showkey = str_replace(lcfirst($_POST["station"]), '<b><u>'.htmlentities(lcfirst($_POST["station"]), ENT_QUOTES).'</u></b>', $founds["fullname"][$i]) 
$showkey = str_replace(ucfirst($_POST['station']), '<b><u>'.htmlentities(ucfirst($_POST["station"]), ENT_QUOTES).'</u></b>', $founds["fullname"][$i]); 

이제 'L'만 굵게 표시되고 밑줄이 그어집니다. 하지만 저는 L과 I 모두 대담하고 밑줄을 긋고 싶습니다.

어떻게하면됩니까?

감사합니다.

+1

'str_ireplace()'... 대소 문자를 구별하지 않습니다. –

답변

0

이 사용하는 정규 표현식을 해결할 수 있어야한다 :

preg_replace('/('. $_POST['station'] .')/i', '<b><u>$1</u></b>', $text); 

그러나 당신이이 방법을 사용하는 경우 $ _POST [ '역'] 특수 문자를 이스케이프하는데주의를 기울여야.