2014-11-29 3 views
1

이것이 버그로 분류 될 수 있는지 알 수 없으므로 잘못된 섹션에 게시되면 죄송합니다. Smarty의 OR 연산자

나는 다음과 같은 작품을 만들려고 노력하고 있어요 :

{if (preg_match("/Nokia308/i",$info) || preg_match("/Nokia309/i",$info))} 

...CONTENT... 

{/if} 

을 기쁨 결과로, 그러나 :

{if preg_match("/Nokia308/i",$info)} 
{if preg_match("/Nokia309/i",$info)} 

...CONTENT... 

{/if} 
{/if} 

가 매우 지저분한 코딩 경우에도 작동합니다.

기본적으로 preg_match("/Nokia308/i",$info) 또는 preg_match("/Nokia309/i",$info)이 설정된 경우 일부 콘텐츠를 표시하려고합니다.

내가 뭘 잘못하고 있는지 알 수 없지만 누군가이 문제에 대해 밝힐 수 있습니까?

감사합니다.

답변

0

당신이 달성하고자 정확히 알고 있지만, 사용 안 함 : $info 변수가 Nokia308 또는 Nokia309 대소 문자를 구별 포함 된 경우

(preg_match("/Nokia308/i",$info) || preg_match("/Nokia309/i",$info) 

조건,이 조건이 참 만들고 싶어.

$smarty->assign('info','Nokia307'); 

...CONTENT... 문자열이 표시되지 않습니다하지만 당신은 할당하는 경우 :

당신은 지정 그렇다면

$smarty->assign('info','Nokia308'); 

또는

$smarty->assign('info','Nokia309'); 

또는

$smarty->assign('info','NOKIA308'); 

...CONTENT... 문자열이 표시됩니다.

모든 것이 제대로 작동해야합니다.

+0

나는 당신에 동의합니다. 하지만 여기서'$ info'에는 정적 인 값이 없습니다. 나는 $ info'$ info = $ _SERVER [ 'HTTP_USER_AGENT'];' –

+0

@RohitJindal을 얻기 위해 PHP에서 미리 정의 된'GLOBAL VARIABLE'을 사용합니다. 그래서 여기에는 문제가 없습니다. '$ _SERVER [ 'HTTP_USER_AGENT']'가'Nokia308' 또는'Nokia309'를 포함하면 메시지가 표시됩니다. 여기서 일할 수없는 것을 보지 못하거나 문제가 무엇인지 설명 할 수 없습니다. –