애드센스를 특정단어의 주소가 포함된 곳에서는 내보지 않으려고 조건을 사용했습니다.
그런데 이 조건을 애드센스 3개에 모두 사용하는데 금칙어를 추가할때 마다 모두 수정해야 하는 불편이 있어서요.
<!--@if (!(strpos($uri, '금칙어1') || strpos($uri, '금칙어2')))-->
이것을 좀 편하게...
$uri 에 미리 담아놓은 금칙어상자의 금칙어들과 같은게 있는지 확인하는 조건으로 쓰고 십습니다.
in_array 인가요? 그걸 써야 하는거 같기도 하구요..
이럴 때 정규식을 사용하면 편합니다. in_array는 변수 전체가 정확하게 매칭되는 것을 찾을 때는 편하지만 중간에 포함된 것만 찾으려면 결국 루프를 돌려야 해서 효율이 떨어져요.
<!--if(preg_match('/금지어1|금지어2|금지어3/', $uri))-->
구분에 사용한 문자는 쉬프트+\ 입니다. 위의 조건은 금지어가 포함되어 있을 경우 참이 됩니다. 포함되지 않은 경우 참이 되도록 만들려면 preg_match 앞에 !를 붙여 주면 되겠지요?
단, 금지어에 괄호나 마침표, 슬래시, 그 밖의 특수기호가 포함되어 있을 경우 정규식에서 다른 의미로 해석할 수 있으므로 마치 따옴표 안에서 따옴표를 쓸 때처럼 \. \( \) \[ \] \/ 이렇게 이스케이프 처리해야 합니다.