582

HTTPPOSTを使用してPHPcURLを実行する方法を教えてもらえますか?

次のようなデータを送信したい:

username=user1, password=passuser1, gender=1

www.example.com

cURLがのような応答を返すことを期待していresult=OKます。例はありますか?

4

13 に答える 13

980
<?php
//
// A very simple PHP example that sends a HTTP POST to a remote site
//

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL,"http://www.example.com/tester.phtml");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,
            "postvar1=value1&postvar2=value2&postvar3=value3");

// In real life you should use something like:
// curl_setopt($ch, CURLOPT_POSTFIELDS, 
//          http_build_query(array('postvar1' => 'value1')));

// Receive server response ...
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$server_output = curl_exec($ch);

curl_close ($ch);

// Further processing ...
if ($server_output == "OK") { ... } else { ... }
?>
于 2010-01-26T09:40:44.407 に答える
35

次の方法で簡単にアクセスできます。

<?php

$post = [
    'username' => 'user1',
    'password' => 'passuser1',
    'gender'   => 1,
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.domain.com');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post));
$response = curl_exec($ch);
var_export($response);
于 2015-06-16T05:45:33.827 に答える
6

フォームがリダイレクト、認証、Cookie、SSL(https)、またはPOST変数を期待する完全に開いたスクリプト以外のものを使用している場合は、すぐに歯を食いしばり始めます。スヌーピーを見てください。これは、多くのオーバーヘッドを設定する必要をなくしながら、あなたが考えていることを正確に実行します。

于 2010-01-26T09:47:19.997 に答える
3

自分の Web サイトに情報を渡す場合のより簡単な答えは、SESSION 変数を使用することです。次のように php ページを開始します。

session_start();

ある時点で、PHP で生成してセッションの次のページに渡したい情報がある場合は、POST 変数を使用する代わりに、それを SESSION 変数に割り当てます。例:

$_SESSION['message']='www.'.$_GET['school'].'.edu was not found.  Please try again.'

次のページでは、この SESSION 変数を参照するだけです。注: 使用後は、必ず破棄してください。使用後は保持されません。

if (isset($_SESSION['message'])) {echo $_SESSION['message']; unset($_SESSION['message']);}
于 2013-06-28T17:33:15.090 に答える
3

フォームデータの送信例:

$curlHandler = curl_init();

curl_setopt_array($curlHandler, [
    CURLOPT_URL => 'https://postman-echo.com/post',
    CURLOPT_RETURNTRANSFER => true,

    /**
     * Specify POST method
     */
    CURLOPT_POST => true,

    /**
     * Specify array of form fields
     */
    CURLOPT_POSTFIELDS => [
        'foo' => 'bar',
        'baz' => 'biz',
    ],
]);

$response = curl_exec($curlHandler);

curl_close($curlHandler);

echo($response);
于 2019-06-18T19:39:17.640 に答える