테스트 사이트 - 개발 중인 베타 버전입니다

preg_match 에서 폴더명은 어떻게 처리하죠? 채택완료

김준수사랑 4년 전 조회 1,996

주소창이
/board/shop/shop.php
/board/shop.php

위의 두개의 파일안에서 인크루드된 파일이 있는데요

shop폴더안에서 처리된 경우만 특정소스를 넣을려고합니다

if (preg_match("/board/shop$/", $_SERVER[PHP_SELF])) {  이런형태로 하려고하니 안되어서요..
어떠헥 해야하는지 도움좀요..

댓글을 작성하려면 로그인이 필요합니다.

답변 3개

채택된 답변
+20 포인트
4년 전

strpos 사용이 좋겠습니다

질문의 코드는 사용법이 틀렷습니다

preg_match("/board/shop$/", --> preg_match("@board/shop$@",

중간에 슬래시가 있는데 양쪽 끝에 슬래시가 있으니 에러납니다

 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

Big1
4년 전

</p>

<p><?php

$array = array(

    '/board/shop/shop.php',

    '/board/shop/shop.php?param1=true&param2=false#hash',

    '/board/shop/shop.php#hash',

    '/board/test/shop.php',

    '/board/shop/test/shop.php',

    '/board/shop.php',

    '/board/shop/shop.test.php',

    '/board/shop.test.php',

    '/shop/shop/test.php'

);</p>

<p>foreach ($array as $f) {

    $f = preg_replace('%[\?\&\#].*%', '', $f); // PHP_SELF

    echo $f.' === ';

    echo preg_match('%^/board/shop/[^/]+\.php$%i', $f);

    echo '
';

}

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인