테스트 사이트 - 개발 중인 베타 버전입니다

주소중에 일부 추출 채택완료

그누x쵸딩 4년 전 조회 2,329

인풋의 주소가

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

이런식이라면 

여기서 

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

 

 

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

답변 2개

채택된 답변
+20 포인트
4년 전

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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 6개

그누x쵸딩
4년 전
감사합니다. 간단해보이는데
<?
$url = explode('|', $add_list[$j]['url']);
$query = parse_url('<?=$url[$j]?>', PHP_URL_QUERY);
parse_str($query, $params);
echo $params['go_item_id'];
?>
이렇게 하니 왜 안될까요?
마르스컴퍼니
4년 전
<?
$url = explode('|', $add_list[$j]['url']);
$query = parse_url($url[0], PHP_URL_QUERY);
parse_str($query, $params);
echo $params['go_item_id'];
?>
그누x쵸딩
4년 전
감사합니다. 잘나옵니다. 좋은 하루되세요
그누x쵸딩
4년 전
마르스님 죄송한데 한개만 더 묻고 싶습니다.

<?
$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갯수보다 한개 적게 출력되는건 왜그렇까요?
마르스컴퍼니
4년 전
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'];
}
?>
그누x쵸딩
4년 전
감사합니다. 원래 잘되었던 겁니다. ㅋ url중 한개가 go_item_id이게 없는거였습니다.

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

s
4년 전

정규식을 이용하여 쉽게 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 값을 리턴해줍니다.
도움이 되길 바랍니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 5개

그누x쵸딩
4년 전
감사합니다.
console.log(getQuery('go_item_id', '<?=$url[$j]?>')) 이렇게 해보니 5283723뒷부분도 계속 나오는데...
5283723만 추출하고 싶습니다. ㅎ
s
swallow
4년 전
url 을 정확히 볼수 없을가요?
뒷부분이 어떻게 되여있는지...
그누x쵸딩
4년 전
감사합니다. &go_item_id=528372380116&pvid=549cf0aa-22f3-49f0-96a0-d6341443c2cf& 이런식으로 되어 있습니다.
s
swallow
4년 전
getQuery('go_item_id', 'https://~~~~~&go_item_id=528372380116&pvid=549cf0aa-22f3-49f0-96a0-d6341443c2cf&')
이렇게 실행하니
정학히 528372380116 값이 출력되는데요?
그누x쵸딩
4년 전
html로 해봐도 역시 마찬가진데 나는 왜 안될까요...흑흑

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

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

로그인