preg_match 에서 폴더명은 어떻게 처리하죠?
본문
주소창이
/board/shop/shop.php
/board/shop.php
위의 두개의 파일안에서 인크루드된 파일이 있는데요
shop폴더안에서 처리된 경우만 특정소스를 넣을려고합니다
if (preg_match("/board/shop$/", $_SERVER[PHP_SELF])) { 이런형태로 하려고하니 안되어서요..
어떠헥 해야하는지 도움좀요..
답변 3
strpos 사용이 좋겠습니다
질문의 코드는 사용법이 틀렷습니다
preg_match("/board/shop$/", --> preg_match("@board/shop$@",
중간에 슬래시가 있는데 양쪽 끝에 슬래시가 있으니 에러납니다
<?php
$array = array(
'/board/shop/shop.php',
'/board/shop/shop.php?param1=true¶m2=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>';
}
답변을 작성하시기 전에 로그인 해주세요.