php curl 모든 사용법 (로그인 유지, 쿠키 설정, post 등) > PHP & Others

본문 바로가기
사이트 내 전체검색


회원로그인

오늘 85
어제 315
최대 618
전체 523,614
마음을 나누는 인터넷 일기장 - 통플 다이어리
PHP & Others

php curl 모든 사용법 (로그인 유지, 쿠키 설정, post 등)

페이지 정보

작성자 nuno 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 작성일19-11-15 16:39 조회128회 댓글0건

본문



https://blog.naver.com/reviewer__/221560841117


php curl 모든 사용법 (로그인 유지, 쿠키 설정, post 등)



1) 기본 사용법


기본적으로 호출된 url의 정보를 불러옵니다.


$url = "http://www.example.com"; //주소셋팅

$ch = curl_init(); //curl 로딩

curl_setopt($ch, CURLOPT_URL,$url); //curl에 url 셋팅

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // 이 셋팅은 1로 고정하는 것이 정신건강에 좋음


$result = curl_exec ($ch); // curl 실행 및 결과값 저장

print_r($result); //출력

curl_close ($ch); // curl 종료


2) https로 호출시 다음이 기본 호출 방법입니다.


$url = "https://www.example.com"; //주소셋팅

$ch = curl_init(); //curl 로딩

curl_setopt($ch, CURLOPT_URL,$url); //curl에 url 셋팅

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // 이 셋팅은 1로 고정하는 것이 정신건강에 좋음

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); //true로 설정시 일부 https 사이트는 안 열림

curl_setopt($ch, CURLOPT_SSLVERSION,3); //ssl 셋팅


$result = curl_exec ($ch); // curl 실행 및 결과값 저장

print_r($result); //출력

curl_close ($ch); // curl 종료


3) respone(호출한 url)의 header 값이 필요하면 다음 옵션을 활성화시키면 됩니다.



근데 거의 쓸일 없음


curl_setopt($ch, CURLOPT_HEADER, 1 );



4) post 전송



get 전송은 url 셋팅하면 되는 거 아시죠?


$url = "https://www.example.com"; //주소셋팅

$postfields = 'id=sssss&password=123456'; //post값 셋팅 (id값과 password 값이 셋팅됨)


$ch = curl_init(); //curl 로딩

curl_setopt($ch, CURLOPT_URL,$url); //curl에 url 셋팅

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // 이 셋팅은 1로 고정하는 것이 정신건강에 좋음

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); // 주소가 https가 아니라면 지울것

curl_setopt($ch, CURLOPT_SSLVERSION,3); // 주소가 https가 아니라면 지울것


curl_setopt($ch, CURLOPT_POST, 1); // 포스트 전송 활성화 

curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields); // curl에 포스트값 셋팅


$result = curl_exec ($ch); // curl 실행 및 결과값 저장

print_r($result); //출력

curl_close ($ch); // curl 종료



5) 쿠키 저장 및 가져오기



다음 옵션을 활성화시키면 됩니다. 


$filename = 'C:\example\http\static\cookie.txt'; // 윈도우에서는 절대주소 필요

$filename = './static/cookie.txt'; // 리눅스에서는 상대주소 사용하면됨


curl_setopt($ch, CURLOPT_COOKIEJAR, $filename); // 쿠키 값을 저장시킵니다.

쿠키 값을 불러내려면 다음 옵션을 활성화시키면 됩니다.


curl_setopt($ch, CURLOPT_COOKIEFILE, $filename); // 쿠키 값을 불러와 curl 실행시 같이 전송



6) 쿠키 값 직접 설정



일부 쿠키 값이 저장되지 않거나 필요할 때 다음 옵션을 사용합니다.


curl_setopt($ch, CURLOPT_COOKIE, 'name=value'); // 쿠키 값이 "추가됨"



7) referer 설정



일부 사이트의 경우 referer을 검증 값으로 사용할 수 있으니 셋팅 방법을 알아둡시다


curl_setopt($ch, CURLOPT_REFERER, 'https://example.com'); // https, http 구분하세요


8) curl로 로그인 및 로그인 유지


$url = "https://www.example.com/login "; //로그인 확인 주소

$postfields = 'id=sssss&password=123456'; //로그인 post 값

$filename = 'C:\example\http\static\cookie.txt'; // 윈도우에서는 절대주소 필요

$filename = './static/cookie.txt'; // 리눅스에서는 상대주소 사용하면됨


$ch = curl_init(); //curl 로딩

curl_setopt($ch, CURLOPT_URL,$url); //curl에 url 셋팅

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // 이 셋팅은 1로 고정하는 것이 정신건강에 좋음

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); // 주소가 https가 아니라면 지울것

curl_setopt($ch, CURLOPT_SSLVERSION,3); // 주소가 https가 아니라면 지울것


curl_setopt($ch, CURLOPT_POST, 1); // 포스트 전송 활성화 

curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields); // curl에 포스트값 셋팅


curl_setopt($ch, CURLOPT_COOKIEJAR, $filename); // respone되는 쿠키값을 저장함


$result = curl_exec ($ch); // curl 실행 및 결과값 저장

print_r($result); //출력

curl_close ($ch); // curl 종료

이제 로그인 유지되었으니 홈페이지 내의 다른 url 을 호출할 수 있습니다.


이때 쿠키 값이 계속 변할 수 있으니 쿠키 값 저장은 항상 활성화하는 것은 팁입니다.


$url = "https://www.example.com/mypage "; //마이페이지 접속 주소

$filename = 'C:\example\http\static\cookie.txt'; // 윈도우에서는 절대주소 필요

$filename = './static/cookie.txt'; // 리눅스에서는 상대주소 사용하면됨


$ch = curl_init(); //curl 로딩

curl_setopt($ch, CURLOPT_URL,$url); //curl에 url 셋팅

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // 이 셋팅은 1로 고정하는 것이 정신건강에 좋음

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); // 주소가 https가 아니라면 지울것

curl_setopt($ch, CURLOPT_SSLVERSION,3); // 주소가 https가 아니라면 지울것


curl_setopt($ch, CURLOPT_POST, 1); // 포스트 전송 활성화 

curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields); // curl에 포스트값 셋팅


curl_setopt($ch, CURLOPT_COOKIEJAR, $filename); // respone되는 쿠키값을 저장함

curl_setopt($ch, CURLOPT_COOKIEFILE, $filename); // 저장한 쿠키값을 불러옴


$result = curl_exec ($ch); // curl 실행 및 결과값 저장

print_r($result); //출력

curl_close ($ch); // curl 종료



9) 호출된 url의 자바스크립트를 무시하려면 다음 옵션을 사용하십시오


//location.href 같은 머리 아픈 옵션들을 가뿐히 버퍼 제어로 없앱니다 ^^

ob_start();

curl_exec ($ch);

ob_end_clean();

curl_close ($ch);



10) 파일 전송 또한 가능합니다.


//참고주소 https://stackoverflow.com/questions/3085990/post-a-file-string-using-curl-in-php

$delimiter_header = '----WebKitFormBoundary'.uniqid();

$delimiter = ''.$delimiter_header; // 사이트 규칙에 맞게 추가해주면됨. 잘모르면 빈칸 ㄱㄱ


// 파일 셋팅

$fileFields = array(

    'name' => array(

        'name' => '',

        'type' => 'application/octet-stream',

        'content' => ''), 

);


//일반 post 값 셋팅

$postFields = array(

    'id' => '1234'

);


$data = '';


// 여기서부터는 전송값들 정렬(셋팅)

// populate normal fields first (simpler)

foreach ($postFields as $name => $content) {

    $data .= $delimiter . "\r\n";

    $data .= 'Content-Disposition: form-data; name="' . $name . '"';

    // note: double endline

    $data .= "\r\n\r\n";

    $data .= $content;

    $data .= "\r\n";

}


// populate file fields

$data= '';

foreach ($fileFields as $name => $file) {

    $data .= $delimiter . "\r\n";

    // "filename" attribute is not essential; server-side scripts may use it

    $data .= 'Content-Disposition: form-data; name="' . $name . '";' .

        ' filename="'.$file['name'].'"' . "\r\n"; 

    // this is, again, informative only; good practice to include though

    $data .= 'Content-Type: ' . $file['type'] . "\r\n";

    // this endline must be here to indicate end of headers

    $data .= "\r\n";

    // the file itself (note: there's no encoding of any kind)

    $data .= $file['content'] . "\r\n";

}


$url = 'http://example.com/file_upload'; // 파일 업로드 주소

$ch = curl_init();


curl_setopt($ch, CURLOPT_HEADER, 1 );

curl_setopt($ch, CURLOPT_POST, true);

curl_setopt($ch, CURLOPT_HTTPHEADER , array('

    Content-Type: multipart/form-data; boundary=' . $delimiter_header,

    'Content-Length: ' . strlen($data)

    )); 

curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

curl_setopt($ch, CURLOPT_COOKIEJAR, $filename);

curl_setopt($ch, CURLOPT_COOKIEFILE, $filename);

curl_setopt($ch, CURLOPT_URL,"$url");


ob_start();

curl_exec ($ch);

ob_end_clean();

curl_close ($ch);






--------------------------------------


https://gogoke1.blog.me/20205463546


[php curl 쿠키 옵션 정보]


libcurl에 쿠키 엔진을 사용하고 인터페이스하는 여러 가지 방법을 제공합니다. 이 옵션은 기본 API에 의해 제공되는 것입니다. libcurl에 바인딩은 다른 방법을 사용하여에 대한 액세스를 제공 할 수 있습니다.


CURLOPT_COOKIE

서버에 보낼 쿠키 헤더의 정확한 내용을 지정하고자 할 때 사용된다.


CURLOPT_COOKIEFILE

쿠키 엔진을 활성화 libcurl에에게 해, 지정된 파일 쿠키의 초기 설정을 읽을 수 있습니다. 읽기 전용.


CURLOPT_COOKIEJAR

쿠키 엔진을 활성화 libcurl에 알려주기, 및 쉬운 핸들이 닫힐 때 지정된 cookiejar 파일에 알려진 모든 쿠키를 저장합니다. 쓰기 전용입니다.


CURLOPT_COOKIELIST

쿠키의 내부 저장 장치에 추가 할 단일 쿠키에 대한 자세한 정보를 제공합니다. 설정 한 모든 세부 HTTP 헤더로 쿠키를 전달, 또는 넷스케이프 쿠키 파일에서 줄을 전달합니다. 또한이 옵션 등 쿠키를 세척하는데 사용될 수있다


CURLINFO_COOKIELIST

링크리스트와 같은 내부 쿠키 저장소에서 쿠키 정보를 추출합니다.



---------------------------------


https://blog.naver.com/alzxcvbnm/221625744292


[curl 커맨드에 쿠키 적용]


curl -b cookie.txt -c cookie.txt abc.com


-b 옵션으로 서버로부터 온 쿠키 정보를 저장할 파일을 지정하며

-c 옵션으로 리퀘스트를 보낼 때 같이 보낼 쿠키를 가지고 있는 파일을 지정한다.



추천 0

댓글목록

등록된 댓글이 없습니다.

PHP & Others 목록

Total 198건 1 페이지
PHP & Others 목록
번호 제목 글쓴이 날짜 조회 추천
공지 PHP 튜닝과 최적화 nuno 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 05-01 43964 0
열람중 php curl 모든 사용법 (로그인 유지, 쿠키 설정, post 등) nuno 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 11-15 129 0
196 encode / decode openssl_encrypt nuno 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 11-13 113 0
195 jquery ajax php 예제 nuno 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 07-18 793 0
194 PHP 문자열 유니코드 상호변환 nuno 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 06-17 696 0
193 Mysql PASSWORD() PHP 함수 nuno 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 01-17 1596 0
192 배열 stripslashes nuno 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 11-02 1695 0
191 PHP 유용한 정규표현식 예제 nuno 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 10-16 1919 0
190 php 섭씨 화씨 변환 nuno 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 01-16 4193 0
189 [Node.js] 배우는 방법 nuno 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 12-01 4106 0
188 정규표현식 pcre 문법, preg nuno 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 11-29 4577 0
187 자바스크립트 escape unescape php 구현함수 nuno 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 11-16 4797 0
186 정규표현식 nuno 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 11-14 6875 0
185 preg_match 멀티라인 정규표현식 예제 nuno 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 11-14 4268 0
184 그누보드 게시판 입력제한 늘리기 nuno 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 11-10 11916 0
183 리눅스(Linux) php 쉘(Shell) 스크립트 실행하기, 백그라운드로 php 사용하기… nuno 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 07-13 5311 0
182 스누피로 로그인하기(웹호스팅 트래픽정보 긁어오기) nuno 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 05-04 5030 0
181 php 정규표현식 nuno 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 03-11 6459 0
180 curl 로그인 nuno 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 03-11 7372 0
179 PHP backticks shell command (``) nuno 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 03-02 5259 0
게시물 검색

Copyright © nuno21.net All rights reserved. 상단으로
모바일 버전으로 보기