PHP의 URL에 데이터 POST


95

양식없이 PHP의 URL에 POST 데이터를 보내려면 어떻게해야합니까?

양식을 완성하고 제출하기 위해 변수를 보내는 데 사용할 것입니다.

답변:


195

html 형식을 사용하지 않고 PHP 코드 자체에서 URL에 데이터를 게시하려는 경우 curl을 사용하여 수행 할 수 있습니다. 다음과 같이 표시됩니다.

$url = 'http://www.someurl.com';
$myvars = 'myvar1=' . $myvar1 . '&myvar2=' . $myvar2;

$ch = curl_init( $url );
curl_setopt( $ch, CURLOPT_POST, 1);
curl_setopt( $ch, CURLOPT_POSTFIELDS, $myvars);
curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt( $ch, CURLOPT_HEADER, 0);
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1);

$response = curl_exec( $ch );

그러면 게시물 변수가 지정된 URL로 전송되고 페이지에서 반환하는 내용은 $ response에 있습니다.


2
귀하의 솔루션이 올바른 한 OP는 HTML 양식으로 수행하는 방법을 알고 싶었습니다. 질문은 명확하지 않았지만.
Helen Neely

우리는 문제를 이해할 수 없었지만 프로그램을 잠급니다.
albatross

2
무엇을 정교 관심 CURLOPT_FOLLOWLOCATION, CURLOPT_HEADER그리고 CURLOPT_RETURNTRANSFER합니까? 나는 완전히 이해하지 못하는 코드를 복사하지 않는 것을 선호합니다.
Stefan Fabian

1
@Mike 그것이 사실이지만 나는 사람들이 일반적으로 더 많은 질문을 얻지 않기 위해 답변을 얻기 위해 stackoverflow에 오기 때문에 처음부터 명확하거나 답변에서 설명하기 위해 모든 답변을 선호합니다.
스테판 파비안

1
@Stefan 나는 대답이 완벽하게 분명하다고 느꼈다 ... 그것은 질문을 해결했다. 당신의 이해 수준이 대답의 수준보다 낮다면 더 많은 조사를하십시오. 그는 또한 PHP에서 변수를 나타내는 방법이 있기 때문에 $url가 있음을 설명해야합니까 $? 어디에 선을 그리나요? "... 더 많은 질문을받지 않기 위해"는 자기 학습, 특히 프로그래밍에 성공할 사람의 태도가 아닙니다.
Mike

75

cURL-less 당신은 php5에서 사용할 수 있습니다

$url = 'URL';
$data = array('field1' => 'value', 'field2' => 'value');
$options = array(
        'http' => array(
        'header'  => "Content-type: application/x-www-form-urlencoded\r\n",
        'method'  => 'POST',
        'content' => http_build_query($data),
    )
);

$context  = stream_context_create($options);
$result = file_get_contents($url, false, $context);
var_dump($result);

6
file_get_contents은 종종 타사 호스트에서 비활성화하고 컬이 유일한 옵션입니다
KryptoniteDove

3
@KryptoniteDove 나는 그것이 종종 비활성화된다는 것을 알고 있습니다. 나는 내 대답 "CURLESS"
Phd. Burak Öztürk 2018

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.