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

특정 단어 뒤의 값을 추출하는 문제입니다.

토루크막토 5년 전 조회 2,570

 안녕하세요. 
 
현재 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];</p>

<p>

 

위처럼 하니 AAABBBCCC 가 잘 추출 되어 나오는데 
문제가 한가지 있습니다.

wr_3에 
http://naver.com/cafe/?a_code=AAABBBCCC
위처럼 &로 시작하는 다른 값이 없을 때는 AAABBBCCC를 가지고 오지 못합니다.


AAABBBCCC 뒤에 &가 없어도 AAABBBCCC 를 가지고 오게 하려면 
$p = "#a_code=(.+?)&#"; 
이 부분을 어떻게 수정해야 할까요?

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

답변 3개

</p>

<p>$str = "<a href="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";" target="_blank" rel="noopener noreferrer">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>

$url = parse_url($str);

parse_str($url['query'], $query);

echo $query['a_code'];</p>

<p>

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

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

답변에 대한 댓글 1개

토루크막토
5년 전
function getUrlParameter($url, $sch_tag) {
$parts = parse_url($url);
parse_str($parts['query'], $query);
return $query[$sch_tag];
}

$my_url = $list[$i][wr_3];
echo getUrlParamter($my_url, 'a_code');

말씀하신 블로그를 참고하여 위처럼 작성해보았지만

Fatal error: Call to undefined function getUrlParamter()

이라고만 나옵니다 ㅠ_ㅠ

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

토루크막토

어랏 본문에 &amp;&#35;가 사라지는 마법이...;;;

 

 

$d = $list[$i]['wr_3'];
$p = "#a_code=(.+?)&amp;&#35;";
preg_match($p, $d, $m);
echo $m[1];

 

위처럼 사용하고 있습니다.

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

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

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

로그인