[8] laravel - curl api전송(외부사이트)_1

2024. 6. 4. 17:14laravel(라라벨)

728x90

[ 환경 ]
ㄴ laravel 10.48.9


1.  curl의 값 전송폼 생성(html파일)

ㄴ html파일 생성완료 - curl1.php

 

2.  web페이지에서 curl1.php 호출

Route::get('/api/curl', function () { // /api/curl 경로를 입력하여 페이지 호출
    return view('/curl/curl1'); // views에 생성해둔 curl 폼 html파일 view로 호출
});

ㄴ 기본경로 resources/views를 제외하고 하위 경로를 입력하여 view()로 호출.

ㄴ 호출 완료

 

3.  web페이지에서 받은 데이터로 curl 생성

Route::post('/test/curl1', function () {

    $data = []; // curl전송할 데이터를 담을 빈배열 생성
    $data['name'] = $_POST['name']; // key - name  value - name
    $data['tel'] = $_POST['tel']; // key - tel  value - tel
    $data['memo'] = $_POST['memo']; // key - memo  value - memo

    $site_url = "http://?????.??????.???/curl2.php"; // 외부 사이트에서 확인.

    $ch = curl_init(); // 세션 초기화 함수.
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // curl_exec반환 값 설정 (1일시 문자열로 변환)
    curl_setopt($ch, CURLOPT_POST, 1); // 메서드 설정 1-post/2-get
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); // SSL인증서 유효성검사 설정X
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data); // post방식으로 담은 데이터 
    curl_setopt($ch, CURLOPT_URL, $site_url); // curl 전송할 url경로

    $res = curl_exec($ch); // curl 실행 함수
    $error = curl_error($ch); // 에러 확인
    
    // 에러체크
    if($error){ 
    	die("에러 : ".$error); // 에러 시에 에러문 띄우고 die
    }else{
    	return $res; // curl 결과 최종리턴
    }
    curl_close($ch); // curl 종료 함수.
});

 

ㄴ 라우팅 post로 등록 - 전송폼의 action의 경로입력

 

4.  curl에서 전송한 외부사이트 페이지 코드확인

ㄴ 해당 포스팅 글 페이지 사용

https://kuk1938.tistory.com/42

 

[9] PHP - CURL 사용법

[ 환경 ] ㄴ php 7 ※ CURL 이란 ㄴ PHP에서 사용하는 모듈 중 하나이며, 주로 API연결에 많이 사용이 된다. 무료이며 서버에 모듈 설치를 해야 사용이 가능하다. ㄴ PHP를 사용하게되면 많이 사용하게

kuk1938.tistory.com

 

<?php 
    // curl2.php 페이지
    echo "[ curl 전송 받는 페이지 ]<br>";
    echo "$_POST로 전송 받은 값 출력<br>";
    print_r($_POST);

    # 사이트내 curl & 라라벨 curl 삼항연산자_2024.06.04(화)
    $_POST['test1'] = ($_POST['test1']) ? "<br> 첫번째 : ".$_POST['test1'] : "<br> laravel curl 이름 : ".$_POST['name'];
    $_POST['test2'] = ($_POST['test2']) ? "<br> 두번째 : ".$_POST['test2'] : "<br> laravel curl 연락처 : ".$_POST['tel'];
    $_POST['test3'] = ($_POST['test3']) ? "<br> 세번째 : ".$_POST['test3'] : "<br> laravel curl 메모 : ".$_POST['memo'];

    echo $_POST['test1'];
    echo $_POST['test2'];
    echo $_POST['test3'];

?>

ㄴ test1~test3은 예전 curl전송시 사용한 배열값.

ㄴ 한 페이지로 외부사이트 내의 curl, 라라벨 curl 2가지를 받으면서 삼항연산자로 처리하였음.

 

5.  최종 프로세스 진행

ㄴ 폼에서 정보입력

ㄴ curl생성 - curl 외부사이트로 전송 - curl페이지에서 출력문 호출

-  curl1.php => 외부사이트curl2.php => curl1.php

ㄴ 출력완료

 

728x90