특정 단어 뒤의 값을 추출하는 문제입니다.
본문
안녕하세요.
현재 wr_3 에 아래와 같은 값이 들어가 있습니다.
http://naver.com/cafe/?a_code=AAABBBCCC&n_query=%EC%A4%84%EA%B8%B0%EC%84%B8%ED%8F%AC%EA%B0%80%EC%8A%B4%EC%84%B1%ED%98%95%EB%B9%84%EC%9A%A9&DMSKW=%EC%A4%84%EA%B8%B0%EC%84%B8%ED%8F%AC%EA%B0%80%EC%8A%B4%EC%84%B1%ED%98%95%EB%B9%8
위 값중에 a_code= 뒤에 있는 AAABBBCCC 값만 추출해서 보여주고 싶습니다.
이런 질문을 해서 아래와 같은 답변을 얻었습니다.
$d = $list[$i]['wr_3'];
$p = "#a_code=(.+?)";
preg_match($p, $d, $m);
echo $m[1];
위처럼 하니 AAABBBCCC 가 잘 추출 되어 나오는데
문제가 한가지 있습니다.
wr_3에
http://naver.com/cafe/?a_code=AAABBBCCC
위처럼 &로 시작하는 다른 값이 없을 때는 AAABBBCCC를 가지고 오지 못합니다.
AAABBBCCC 뒤에 &가 없어도 AAABBBCCC 를 가지고 오게 하려면
$p = "#a_code=(.+?)";
이 부분을 어떻게 수정해야 할까요?
답변 3
어랏 본문에 &#가 사라지는 마법이...;;;
$d = $list[$i]['wr_3'];
$p = "#a_code=(.+?)&#";
preg_match($p, $d, $m);
echo $m[1];
위처럼 사용하고 있습니다.
https://m.blog.naver.com/PostView.nhn?blogId=tollu09&logNo=220914266833&proxyReferer=https%3A%2F%2Fwww.google.com%2F
해당 블로그 내용 참조해보세요
$str = "http://naver.com/cafe/?a_code=AAABBBCCC&n_query=%EC%A4%84%EA%B8%B0%EC%84%B8%ED%8F%AC%EA%B0%80%EC%8A%B4%EC%84%B1%ED%98%95%EB%B9%84%EC%9A%A9&DMSKW=%EC%A4%84%EA%B8%B0%EC%84%B8%ED%8F%AC%EA%B0%80%EC%8A%B4%EC%84%B1%ED%98%95%EB%B9%8";
$url = parse_url($str);
parse_str($url['query'], $query);
echo $query['a_code'];