묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
preg_match 함수 관련 질문드립니다.
2015.07.12 11:11
http://url/?code=ce34a4c769cf65818b7d7a51b2dae55dbfe936ee72f4fdb97ff7d8cd0cd04439513f6eb4
$result = preg_match("/\?code=(.*?)\';/", curl_exec($ch), $Matches);
$Code = $Matches[1];
preg_match함수를 이용해 맨위의 url에 따라오는 파라미터 code에서 코드값만 분리하려고 하는데
좀처럼 되지않네요 정규식 부분("/\?code=(.*?)\';/")이 잘못된건지...ㅠㅠ
답변 부탁드립니다.
댓글 4
-
ehii
2015.07.12 17:34
-
이미존재하는닉네임입니다
2015.07.18 22:10
1번부분이었는데요 알고보니, 다음에서 더이상 Curl로그인을 지원하지 않는다더군요 ㅠㅠ
어떻게 정말 너무나 정성스럽게 답변해주셔서 감사드립니다.
꾸벅 꾸벅 꾸벅 -
YJSoft
2015.07.12 18:45
http://www.phpliveregex.com/
정규식 테스트하기 조금 힘드시면 위 사이트에서 입력해 보시면서 해보는것도 나쁘지 않습니다.
Regex 부분에 정규식을 앞뒤 / 없이 입력하고 Your search string(s) 부분에 preg_match로 찾을 문자열을 넣으시면 됩니다. -
이미존재하는닉네임입니다
2015.07.18 22:09
감사합니다 덕분에 새로운 사이트를 알게되었습니다!
추출할 패턴의 시작부분과 끝부분을 정확히 정의해 주어야 합니다.
원본인 http://url/?code=ce34a4c769cf65818b7d7a51b2dae55dbfe936ee72f4fdb97ff7d8cd0cd04439513f6eb4 에서
ce34a4c769cf65818b7d7a51b2dae55dbfe936ee72f4fdb97ff7d8cd0cd04439513f6eb4 를 추출하려면
시작부분은 ?code= 다음부분이지만, 끝부분이 명확하지 않네요.
1. 전달될 변수가 code 하나뿐이라서 원본 문자열의 끝부분이 곧 추출할 부분의 끝부분이라면
/"\?code\=(.*)$"/ 또는 /"\?code\=(.*)"/ 입니다.
2. &로 다른 변수도 추가 될 수 있다는 것까지 고려한다면 아래와 같이 3가지 경우에서
http://url/?a=1&code=ce34a4c769cf65818b7d7a51b2dae55dbfe936ee72f4fdb97ff7d8cd0cd04439513f6eb4&b=1
http://url/?a=1&code=ce34a4c769cf65818b7d7a51b2dae55dbfe936ee72f4fdb97ff7d8cd0cd04439513f6eb4
http://url/?code=ce34a4c769cf65818b7d7a51b2dae55dbfe936ee72f4fdb97ff7d8cd0cd04439513f6eb4&b=1
패턴은 /"code\=(.*)\&?"/ 입니다.