10

file_get_contents('php://input')特定の Web サービスからすべての POST パラメーター/値を取得するために使用しています。

$postText = file_get_contents('php://input');

次のような結果になります。

inReplyToId=MG1133&to=61477751386&body=test&from=61477751386&messageId=166594397&rateCode=

次に、新しいデータベース レコードのフィールドにキーと値のペアを設定する必要があるため、個々のキーと値のペアを取得する必要があります。たとえば、私は次のようになりたいと思います:

$inReplyToId = MG1133
$to = 61477751386
$body = test

個々の値がわかったら、データベースに対応するフィールドを設定できます。私は通常使用します:

if(isset($_POST['inReplyToId']) && $_POST['inReplyToId'] !== '' ) {
    $request->setField('_kf_GatewayMessageID', $_POST['inReplyToId']);
}

application/x-www-form-urlencodedただし、送信されているフォームではないため、この場合は機能しません。

4

3 に答える 3

12

関数を使用parse_strしてクエリ文字列を解析できます。

$queryString = 'inReplyToId=MG1133&to=61477751386&body=test&from=61477751386&messageId=166594397&rateCode=';
$data = array();
parse_str($queryString, $data);
var_dump($data);

編集:

たとえば、私は次のようになりたいと思います:

$inReplyToId = MG1133
$to = 61477751386
$body = test

配列キーを変数として取得するには、次を使用できますextract

extract($data);

編集 2 : それぞれのインデックスで変数を使用するコードが既にある場合は、$_POSTデータをマージできます。

$_POST = array_merge($data, $_POST);

ただし、これらの変数を変更することはお勧めできません。

于 2013-07-01T11:47:08.057 に答える