주소중에 일부 추출

주소중에 일부 추출

QA

주소중에 일부 추출

답변 2

본문

인풋의 주소가

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('|', $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 값을 리턴해줍니다.
도움이 되길 바랍니다.

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 125,873
© SIRSOFT
현재 페이지 제일 처음으로