반응형
CURL 이란?
다양한 프로토콜로 데이터 전송이 가능한 Command Line Tool입니다.
CURL 함수 정리
- curl_init : 세션 초기화, 핸들값 리턴
- curl_setopt : 옵션 세팅
- curl_exec : curl 실행
- curl_errno : 에러 발생 시 에러번호를 가져옴
- curl_error : 에러 발생 시 에러메시지를 가져옴
- curl_getinfo : 상태 정보를 리턴
- curl_close : curl 세션 close
CURL_SETOPT 옵션 값
- CURLOPT_FOLLOWLOCATION : TRUE로 설정 시 HTTP 헤더로 보내는 LOCATION헤더의 내용을 따름
- CURLOPT_HEADER : TRUE로 설정 시 헤더의 내용을 출력
- CURLOPT_NOBODY : TRUE로 설정 시 본문의 내용을 받지 않음
- CURLOPT_ POST : 전송 Method 설정 (1-POST / 2-GET)
- CURLOPT_RETURNTRANSFER : TRUE로 설정 시 curl_exec()의 반환 값을 문자열로 반환
- CURLOPT_PORT : 연결 포트 설정
- CURLOPT_TIMEOUT : 반환 값에 대한 타임아웃 설정
- CURLOPT_POSTFIELDS : 'POST'로 보내는 데이터 정의
- CURLOPT_REFERER : HTTP 요청에 사용되는 REFERER헤더의 내용
- CURLOPT_URL : 접속할 URL 주소 설정
- CURLOPT_USERAGENT : HTTP 요청에 사용되는 User-Agent헤더의 내용
예)
GET 방식 (간단한 GET 방식의 API 적용)
<?php
$parameter1 = $_POST["data1"];
$parameter2 = $_POST["data2"];
$parameter3 = $_POST["data3"];
$parameter4 = $_POST["data4"];
$KEY = "API KEY";
if($_POST['data1'] == "" || $_POST['data2'] == "" || $_POST['data3'] == "" || $_POST['data4'] == "" )
{
echo "<script>alert('모두 입력하시오.'); history.back(); </script>";
}else{
$url = "https://API URL/?key={$key}¶meter1={$parameter1}¶meter2={$parameter2}¶meter3={$parameter3}¶meter4={$parameter4}";
$ch = curl_init(); //CURL 세션 초기화
curl_setopt($ch, CURLOPT_URL, $url); //URL 지정
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3); //connection timeout 3초
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //요청 결과를 문자열로 반환
$response = curl_exec($ch); //쿼리 실행
curl_close($ch);
return $response;
echo "<script>alert('API 적용'); history.back(); </script>";
?>
POST 방식
$url = "API URL";
$ch = curl_init(); //curl 초기화
curl_setopt($ch, CURLOPT_URL, $url); //URL 지정하기
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //요청 결과를 문자열로 반환
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3); //connection timeout 3초
curl_setopt($ch, CURLOPT_POSTFIELDS, $data); //POST data
curl_setopt($ch, CURLOPT_POST, true); //true시 post 전송
$response = curl_exec($ch); //쿼리 실행
curl_close($ch);
return $response;
참고
반응형
'Coding > PHP' 카테고리의 다른 글
[PHP] PHP로 Ping 모니터링 구현 (0) | 2022.12.02 |
---|---|
[PHP] 특정 영역 자동 스크린샷 저장 후 가장 최신 이미지 DB 저장 (0) | 2022.11.30 |
[PHP] 특정 디렉터리에서 가장 최신 파일 출력 및 SQL ISNERT (0) | 2022.11.30 |
[PHP] PHP에서 MySQL로 간단한 이미지 업로드 및 불러오기 (0) | 2022.11.28 |
[PHP] 하나의 식별자로 SQL 쿼리 상황별 조정 (0) | 2022.06.25 |
댓글