- $data='username=zjzhoufy@126.com&password=1q2w3e&remember=1';
- $curlobj = 컬_init( ); // 초기화
- curl_setopt($curlobj, CURLOPT_URL, "http://www.imooc.com/user/login") // 웹페이지에 접속하기 위한 URL 설정
- curl_setopt($curlobj, CURLOPT_RETURNTRANSFER, true ); // 실행 후 바로 출력하지 않음
- // 쿠키 관련 설정은 모든 세션이 시작되기 전에 설정해야 함
- date_default_timezone_set('PRC') // 사용 시 쿠키를 사용하려면 먼저 시간대를 설정해야 합니다
- curl_setopt($curlobj, CURLOPT_COOKIESESSION, TRUE);
- curl_setopt($curlobj, CURLOPT_COOKIEJAR, 'cookie.txt ') //Save
- curl_setopt($curlobj, CURLOPT_COOKIEFILE , 'cookie.txt') ; CURLOPT_COOKIE,session_name().'='.session_id());
- curl_setopt($curlobj, CURLOPT_POST, 1)
- curl_setopt($curlobj, CURLOPT_POSTFIELDS, $data);
- curl_setopt ($curlobj, CURLOPT_HTTPHEADER, array("application/x-www-form-urlencoded; charset=utf-8",
- "콘텐츠 길이: ".strlen($data)
- ));
- 컬_exec($curlobj); // 실행
- curl_setopt($curlobj, CURLOPT_URL, "http://www.imooc.com/space/index");
- curl_setopt($ curlobj, CURLOPT_POST, 0);
- curl_setopt($curlobj, CURLOPT_HTTPHEADER, array("Content-type: text/xml"
- ))
- $output=curl_exec($curlobj); 🎜>curl_close($curlobj); // cURL 닫기
- echo $output;
- ?>
-
-
- 코드 복사
-
위 코드는 완벽하지 않습니다. 쿠키를 캐시에 저장해야 하며 유지해서는 안 되며 이러한 지속성은 단일 사용자만 액세스할 수 있습니다.
따라서 실제로는
CURLOPT_COOKIESESSION
코드 복사-
만 설정하면 됩니다. 다음과 같습니다
- $data='username=demo_demo@126.com&password=123456qwe&remember=1';
- $curlobj = cur_init(); // 초기화
- curl_setopt($curlobj, CURLOPT_URL, "http://www.imooc.com/user/login") // 웹페이지 접속을 위한 URL 설정
- curl_setopt( $curlobj, CURLOPT_RETURNTRANSFER, true); // 실행 후 바로 출력하지 마세요
- // 쿠키 관련 설정은 모든 세션이 시작되기 전에 설정해야 합니다
- date_default_timezone_set('PRC' ); // 쿠키를 사용할 때는 시간대를 먼저 설정해야 합니다.
- curl_setopt($curlobj, CURLOPT_COOKIESESSION, TRUE)
- curl_setopt($curlobj, CURLOPT_HEADER, 0)
- curl_setopt($curlobj, CURLOPT_COOKIE ,session_name().'= '.session_id());
- // 이 설정은 서버 보안에 해로운 안전 모드와 open_basedir을 꺼야 하므로 이 줄을 주석 처리하세요.
- //curl_setopt($curlobj , curlopt_follinglocation, 1); /x-www-form-urlencoded; charset=utf-8",
- "콘텐츠 길이: ".strlen($data)
- ));
- curl_exec($curlobj); // 실행
- curl_setopt($curlobj, CURLOPT_URL, "http://www.imooc.com/space/index");
- curl_setopt($curlobj, CURLOPT_POST, 0)
- curl_setopt($curlobj, CURLOPT_HTTPHEADER, 배열 ("Content-type: text/xml "
- ));
- $output=curl_redir_exec($curlobj); // cURL 닫기
- echo $output ;
- /* *
- * 페이지 링크 점프 및 캡처 맞춤형 구현
- */
- function curl_redir_exec($ch,$debug="")
- {
- static $curl_loops = 0
- static $curl_max_loops = 20;
- if ($curl_loops >= $curl_max_loops)
- {
- $curl_loops = 0;
- return FALSE; true); // 헤더가 켜진 경우에만
- 으로 리디렉션된 새 URL을 가져옵니다.
- $data = cur_exec($ch)
- 반환된 콘텐츠
- $h_len = 컬_getinfo($ch, CURLINFO_HEADER_SIZE);
- $header = substr($data,0,$h_len);
- $data = substr($data,$h_len - 1);
-
- $http_code = cur_getinfo($ch, CURLINFO_HTTP_CODE);
- if ($http_code == 301 || $http_code == 302) {
- $matches = array()
- preg_match ('/Location:(.*? )n/', $header, $matches);
- $url = @parse_url(trim(array_pop($matches)))
- // print_r($url) ;
- if (!$url )
- {
- //
- 로 리디렉션할 URL을 처리할 수 없습니다. $curl_loops = 0
- return $data; $last_url = parse_url(curl_getinfo($ch , CURLINFO_EFFECTIVE_URL));
- if (!isset($url['scheme']))
- $url['scheme'] = $last_url['scheme'];
- if (!isset($ url['host']))
- $url['host'] = $last_url['host']
- if (!isset($url['path') ]))
- $url[ 'path'] = $last_url['path'];
-
- $new_url = $url['scheme'] '://' . '] . $url['path' ] . (isset($url['query'])?'?'.$url['query']:'')
- 컬_세톱($ch, CURLOPT_URL, $ new_url);
-
- return cur_redir_exec($ch);
- } else {
- $curl_loops=0
- return $data; ;
-
-
- 코드 복사
-
-
-
-
-
-
-
-
-
컬, PHP
|