web-dev-qa-db-ja.com

PHPで投稿データをファイルに書き込みます

テキストファイルに保存するphpファイルに、以下のコードを使用してデータを投稿する必要があります。 phpファイルを作成して以下のデータを受信し、テキストファイルに保存する方法がわかりません。可能な限りシンプル。

try {  
    // Add your data  
    List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);  
    nameValuePairs.add(new BasicNameValuePair("stringData", "12345"));  
    nameValuePairs.add(new BasicNameValuePair("stringData", "AndDev is Cool!"));  
    httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));  

    // Execute HTTP Post Request  
    HttpResponse response = httpclient.execute(httppost);  
    String responseText = EntityUtils.toString(response.getEntity()); 
    tv.setText(responseText);             
} catch (ClientProtocolException e) {  
    // TODO Auto-generated catch block  
} catch (IOException e) {  
    // TODO Auto-generated catch block  
}  
22
Mark Ismail

単純なように:

file_put_contents('test.txt', file_get_contents('php://input'));
64
Hamish

1)PHPでは、着信リクエストからPOSTデータを取得するには、$ _ POST配列を使用します。 POSTのPHP配列は結合的です。つまり、各入力パラメーターはキーと値のペアになります。開発では、$ _ POSTで実際に何を取得しているかを理解しておくと役立ちます。次のようにprintf()またはvar_dump()を使用して内容をダンプできます。

var_dump($_POST);

-または-

printf($_POST);

2)データを保存するための便利な文字列ベースの形式を選択します。 PHPにはserialize()関数があり、これを使用して配列を文字列に変換できます。配列をJSON文字列に変換するのも簡単です。 JSONを使用することをお勧めします。これはさまざまな言語でこの表記を使用するのが自然だからです(一方、PHPシリアル化を使用すると、将来的にPHPを使用することになります)。 PHP 5.2.0以降では、json_encode()関数が組み込まれています。

$json_string = json_encode($_POST);

// For info re: JSON in PHP:
// http://php.net/manual/en/function.json-encode.php

3)ファイルに文字列を保存します。 jopen文字列をファイルに書き込むには、fopen()、fwrite()、fclose()を使用してみてください。

$json_string = json_encode($_POST);

$file_handle = fopen('my_filename.json', 'w');
fwrite($file_handle, $json_string);
fclose($file_handle);

// For info re: writing files in PHP:
// http://php.net/manual/en/function.fwrite.php

使用するファイルパスとファイル名の特定の場所と方法論を考え出すことができます。

注:$ HTTP_RAW_POST_DATAを使用して、HTTPリクエストのPOST本文を直接取得する可能性もあります。生データはURLエンコードされ、上記のようにファイルに書き込むことができる文字列になります。

17
ekillaby