|
답변 2개 / 댓글 11개
채택된 답변
+20 포인트
마르스컴퍼니
5년 전
$query = parse_url('https://~~~~~~&go_item_id=5283723&~~~~', PHP_URL_QUERY);
parse_str($query, $params);
echo $params['go_item_id'];
답변에 대한 댓글 6개
그누x쵸딩
5년 전
마르스컴퍼니
5년 전
<?
$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('|', $add_list[$j]['url']);
$query = parse_url($url[0], PHP_URL_QUERY);
parse_str($query, $params);
echo $params['go_item_id'];
?>
그누x쵸딩
5년 전
마르스님 죄송한데 한개만 더 묻고 싶습니다.
<?
$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갯수보다 한개 적게 출력되는건 왜그렇까요?
<?
$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갯수보다 한개 적게 출력되는건 왜그렇까요?
마르스컴퍼니
5년 전
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'];
}
?>
혹 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'];
}
?>
swallow
5년 전
정규식을 이용하여 쉽게 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쵸딩
5년 전
감사합니다.
console.log(getQuery('go_item_id', '<?=$url[$j]?>')) 이렇게 해보니 5283723뒷부분도 계속 나오는데...
5283723만 추출하고 싶습니다. ㅎ
console.log(getQuery('go_item_id', '<?=$url[$j]?>')) 이렇게 해보니 5283723뒷부분도 계속 나오는데...
5283723만 추출하고 싶습니다. ㅎ
그누x쵸딩
5년 전
감사합니다. &go_item_id=528372380116&pvid=549cf0aa-22f3-49f0-96a0-d6341443c2cf& 이런식으로 되어 있습니다.
swallow
5년 전
getQuery('go_item_id', 'https://~~~~~&go_item_id=528372380116&pvid=549cf0aa-22f3-49f0-96a0-d6341443c2cf&')
이렇게 실행하니
정학히 528372380116 값이 출력되는데요?
이렇게 실행하니
정학히 528372380116 값이 출력되는데요?
답변을 작성하려면 로그인이 필요합니다.
<?
$url = explode('|', $add_list[$j]['url']);
$query = parse_url('<?=$url[$j]?>', PHP_URL_QUERY);
parse_str($query, $params);
echo $params['go_item_id'];
?>
이렇게 하니 왜 안될까요?