답변 2개
$query = parse_url('https://~~~~~~&go_item_id=5283723&~~~~', PHP_URL_QUERY);
parse_str($query, $params);
echo $params['go_item_id'];
답변에 대한 댓글 6개
$url = explode('|', $add_list[$j]['url']);
$query = parse_url($url[0], 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갯수보다 한개 적게 출력되는건 왜그렇까요?
혹 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 값을 리턴해줍니다.
도움이 되길 바랍니다.
답변에 대한 댓글 5개
console.log(getQuery('go_item_id', '<?=$url[$j]?>')) 이렇게 해보니 5283723뒷부분도 계속 나오는데...
5283723만 추출하고 싶습니다. ㅎ
뒷부분이 어떻게 되여있는지...
이렇게 실행하니
정학히 528372380116 값이 출력되는데요?
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
<?
$url = explode('|', $add_list[$j]['url']);
$query = parse_url('<?=$url[$j]?>', PHP_URL_QUERY);
parse_str($query, $params);
echo $params['go_item_id'];
?>
이렇게 하니 왜 안될까요?