채택완료

preg_match 에서 폴더명은 어떻게 처리하죠?

2021-01-20 (수) 21:38:15 2,110

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

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

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

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

|

답변 3개

채택된 답변
+20 포인트

strpos 사용이 좋겠습니다

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

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

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

Copy
<?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'
);

foreach ($array as $f) {
    $f = preg_replace('%[\?\&\#].*%', '', $f); // PHP_SELF
    echo $f.' === ';
    echo preg_match('%^/board/shop/[^/]+\.php$%i', $f);
    echo '<br>';
}
2021-01-20 (수) 21:45:50

단순문자 비교이면

http://blog.naver.com/PostView.nhn?blogId=crehacktive3&logNo=221008246734

이걸로 해보세요.

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