2011-01-20 18 views
12

Necesito publicar datos usando el siguiente código, en el archivo php que lo guardará en un archivo de texto. Simplemente no sé cómo crear el archivo php para recibir los datos a continuación y guardarlo en un archivo de texto. tan simple como sea posible.Escribir datos de publicaciones en un archivo con 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 
} 

Respuesta

47

simple como:

file_put_contents('test.txt', file_get_contents('php://input')); 
+6

+1

Si desea obtener el valor de una tecla en particular y guardarla, entonces sí. Si solo desea volcar los datos de POST sin procesar (que no tienen que ser pares de valores clave, podrían ser datos binarios, por ejemplo), la secuencia 'php: // input' lo leerá. La pregunta era vaga y pedía "lo más simple posible" ... bueno, no es mucho más simple. – Hamish

+2

también, 'file_put_contents' realiza el fopen, fwrite y fclose de una vez, más fácil de usar y leer. – Hamish

12

1) En PHP, para obtener datos POST de una solicitud entrante utilizan la matriz $ _POST. La matriz POST en PHP es asociativa, lo que significa que cada parámetro entrante será un par clave-valor. En desarrollo, es útil comprender lo que realmente está recibiendo en $ _POST. Puede volcar los contenidos usando printf() o var_dump() como el siguiente.

var_dump($_POST); 

- o -

printf($_POST); 

2) Elegir un formato basado en cadena útil para almacenar los datos. PHP tiene una función serialize(), que puede usar para convertir la matriz en una cadena. También es fácil convertir la matriz en una cadena JSON. Sugiero usar JSON ya que es natural usar esta notación en varios idiomas (mientras que el uso de una serialización de PHP de alguna manera lo vincularía a usar PHP en el futuro). En PHP 5.2.0 y superior, la función json_encode() está incorporada.

$json_string = json_encode($_POST); 

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

3) Guarde la cadena en un archivo. Intente usar fopen(), fwrite() y fclose() para escribir la cadena json en un archivo.

$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 

Querrá encontrar una ubicación y una metodología específicas para las rutas de archivos y los nombres de archivo utilizados.

Nota: También existe la posibilidad de obtener el cuerpo POST de la solicitud HTTP directamente usando $ HTTP_RAW_POST_DATA. Los datos brutos tendrán codificación URL y serán una cadena que puede escribir en un archivo como se describe arriba.

+0

Solo necesito saber cómo debería ser mi archivo php en mi servidor como "

+0

Ponga etiquetas alrededor de la respuesta de Hamish y listo. – ekillaby

+0

lo hice y funcionó, muchas gracias, una vez que lo entiendo un poco más de lo que haré a su manera. Gracias por las respuestas rápidas –

Cuestiones relacionadas