치

상대경로를 절대경로로 바꾸기

· 2016-12-28 (수) 12:03:11 · 9029 · 4
[code]
function rel2abs($relPath) {
$curPath = $_SERVER['PHP_SELF'];
$tmp = preg_replace("/\\/[^\\/]*$/", "/", $curPath) . $relPath;
$tmp = preg_replace("/\\/\\.\\//", "/", $tmp);
$c = preg_match_all("/\\.\\./", $tmp, $matches);
for ( $i = 0; $i < $c; ++$i )
$tmp = preg_replace("/\\/[^\\/]+\\/\\.\\.\\//", "/", $tmp, 1);
return $tmp;
}

echo G5_URL.rel2abs("../theme/basic/head.php");
[/code]
외부 페이지로 퍼가기 할 때 절대경로가 필요하더군요
고 때 사용하심 됩니다.
|

댓글 4개

팁과는 직접적인 관련은 없지만. PHP_SELF는 공격자에 의해 변조가 가능합니다.
변조를 통해 XSS 취약점 공격도 가능하기 때문에 SCRIPT_NAME 을 사용하시는 것이 좋습니다.
좋아요
@불친절한태엽씨 님, 좋은 팁 감사합니다.

근데, 궁근한 게요,,,

위 본문처럼 함수를 정의하고 출력 코드 부분을
echo G5_URL.rel2abs("../theme/basic/head.php"); 이렇게 적는 경우와

그냥 단순히 위 본문의 함수 사용 않고,
echo G5_URL."/theme/basic/head.php"); 이렇게만 적는 경우가 차이가 있는 건가요?
2017-01-06 (금) 09:22:15
@sinbi

theme/board/basic 에서 echo rel2abs("../../_common.php"); 를 실행하면
/_common.php 으로 됩니다.
댓글을 작성하시려면 로그인이 필요합니다.

그누보드5 팁자료실

2,788건
+
제목 글쓴이 날짜 조회
17-02-06 조회 9,463
17-02-04 조회 8,376
17-02-02 조회 7,883
17-01-31 조회 9,083
17-01-25 조회 7,134
17-01-24 조회 8,591
17-01-22 조회 8,846
17-01-19 조회 7,212
17-01-18 조회 1.3만
17-01-17 조회 1.2만
17-01-14 조회 8,147
17-01-12 조회 2.2만
17-01-12 조회 1.3만
17-01-11 조회 8,224
17-01-11 조회 6,862
17-01-10 조회 1.1만
17-01-10 조회 7,808
17-01-09 조회 9,815
17-01-09 조회 7,405
17-01-06 조회 1.6만
17-01-06 조회 9,695
17-01-05 조회 1.2만
17-01-04 조회 8,349
17-01-03 조회 1.1만
16-12-30 조회 8,514
16-12-29 조회 1만
16-12-28 조회 9,030
16-12-27 조회 8,912
16-12-21 조회 1.2만
16-12-20 조회 8,466