트랙백 모듈을 손보고 있는 중인데요.
사이트 내부에서만 트랙백이 이뤄지도록 하고, 입력된 url로부터 타겟 문서번호를 추출하려고 합니다.
(나중에 타겟 문서번호를 통해 역링크 목록을 만들어보려구요)
암튼 아래와 같이 타겟 문서번호를 빼는 데 성공은 했는데, 약간 노가다 느낌이 나서....
간단한 함수나 간결한 방법이 없을까 해서 질문 남겨봅니다.
$obj = new stdClass(); $obj->document_srl = $document_srl; $obj->url = $trackback_url; $is_internal_document = false; if ( Rhymix\Framework\URL::isInternalURL($trackback_url) ) { $url_info = parse_url($trackback_url); $path = $url_info['path']; $query = $url_info['query']; if ( isset($path) && strlen($path) > 1 && $path !== '/index.php' ) { preg_match('/\/(\d+)/', $path, $match); if ( $match && $match[1] ) { $trackback_target_srl = $match[1]; } } else if ( isset($query) && preg_match('document_srl', $query) ) { preg_match('document_srl=(\d+)/', $query, $match); if ( $match && $match[1] ) { $trackback_target_srl = $match[1]; } } if ( $trackback_target_srl ) { $oDocument = DocumentModel::getDocument($trackback_target_srl); if ( $oDocument->isExists() ) { $obj->trackback_target_srl = $trackback_target_srl; $is_internal_document = true; } } }
$rewrite_level = Rhymix\Framework\Router::getRewriteLevel();
$result = Rhymix\Framework\Router::parseUrl('GET', 'board/1234', $rewrite_level);
$result->args를 뜯어보세요. 필요한 정보 다 나옵니다.^^
이 때 넘기는 URL은 앞에 슬래시가 없는 RX_REQUEST_URL과 같은 형태여야 합니다.
즉, URL의 path에서 맨 앞에 RX_BASEURL과 일치하는 부분은 제거하세요.