주소중에 일부 추출

주소중에 일부 추출

QA

주소중에 일부 추출

본문

인풋의 주소가

https://~~~~~~&go_item_id=5283723&~~~~

이런식이라면 

여기서 

go_item_id=뒤의 5283723 숫자만 추출하고 싶습니다.

 

 

이 질문에 댓글 쓰기 :

답변 2

$query = parse_url('https://~~~~~~&go_item_id=5283723&~~~~', PHP_URL_QUERY);
parse_str($query, $params);
echo $params['go_item_id'];

감사합니다. 간단해보이는데
  <?
$url = explode('|', $add_list[$j]['url']);
$query = parse_url('<?=$url[$j]?>', PHP_URL_QUERY);
parse_str($query, $params);
echo $params['go_item_id'];
?>
이렇게 하니 왜 안될까요?

마르스님 죄송한데 한개만 더 묻고 싶습니다.

<?
$url = explode('|', $write[url]);
for($i = 0; $i<count($url); $i++){
?>

<?
$query = parse_url($url[$i], PHP_URL_QUERY);
parse_str($query, $params);
echo $params['go_item_id'];
?>
<? } ?>

이렇게 for문을 돌렸는데
실제 url갯수보다 한개 적게 출력되는건 왜그렇까요?

for 문에는 특별한 문제가 없어보이고.. 왜 그런지 잘 모르겠습니다.

혹 foreach 문으로 대체해보면 다음과 같습니다.
<?
$url = explode('|', $write[url]);
foreach($url as $val){
$query = parse_url($val, PHP_URL_QUERY);
parse_str($query, $params);
echo $params['go_item_id'];
}
?>

정규식을 이용하여 쉽게 URL쿼리 값을 추출할수 있습니다.
제가 간단히 함수 하나 작성했습니다.
function getQuery(field, url) {
        var href = url? url : window.location.href;
        var reg = new RegExp('[?&]'+field+'=([^]*)', 'i');
        var str = reg.exec(href);
        return str? str[1] : null;
    }
console.log(getQuery('go_item_id', 'https://~~~~~~&go_item_id=5283723&~~~~'))
출력값:  5283723
getQuery함수에서 두번째 파라미터를 지정하지 않으면 현재의 페이지URL이 자동입력되어 처리합니다.
추출하려는 마당값이 없으면 null 값을 리턴해줍니다.
도움이 되길 바랍니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 671
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT