2011-01-20 14 views
12

Potrzebuję opublikować dane za pomocą poniższego kodu, do pliku php, który zapisze go w pliku tekstowym. Po prostu nie wiem, jak utworzyć plik php, aby otrzymać poniższe dane i zapisać je w pliku tekstowym. tak proste, jak to możliwe.Zapisuj dane posta do pliku za pomocą 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 
} 

Odpowiedz

47

Proste jak:

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

+1

Jeśli chcesz uzyskać wartość jednego określonego klucza i go zapisać, to tak. Jeśli chcesz po prostu zrzucić surowe dane POST (które nie muszą być parami wartości klucza - może to być na przykład dane binarne), to strumień "php: // input" go odczyta. Pytanie było niejasne i wymagało "tak prostego jak to tylko możliwe" ... no cóż, nie jest to o wiele prostsze. – Hamish

+2

również, 'file_put_contents' wykonuje fopen, fwrite i fclose w jednym hicie - łatwiejszy w użyciu i czytaniu. – Hamish

12

1) w PHP, aby uzyskać dane z żądania POST przychodzącego użyć tablicy $ _POST. Tablica POST w PHP jest asocjacyjna, co oznacza, że ​​każdy przychodzący parametr będzie parą klucz-wartość. W rozwoju warto zrozumieć, co faktycznie dostajesz w $ _POST. Możesz zrzucić zawartość za pomocą printf() lub var_dump(), jak poniżej.

var_dump($_POST); 

- lub -

printf($_POST); 

2) Wybierz przydatnych formatowanie ciąg oparte na przechowywanie danych. PHP ma funkcję serialize(), której można użyć do przekształcenia tablicy w ciąg znaków. Łatwo też przekształcić tablicę w łańcuch JSON. Sugeruję użycie JSON, ponieważ używanie tej notacji w różnych językach jest naturalne (podczas gdy korzystanie z serializacji PHP w pewnym stopniu wiązałoby cię z używaniem PHP w przyszłości). W PHP 5.2.0 i nowszych wbudowana jest funkcja json_encode().

$json_string = json_encode($_POST); 

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

3) Zapisz ciąg w pliku. Spróbuj użyć fopen(), fwrite() i fclose(), aby napisać ciąg json do pliku.

$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 

Będziesz chciał wymyślić określoną lokalizację i metodologię dla ścieżek plików i nazw plików.

Uwaga: Istnieje również możliwość uzyskania treści POST żądania HTTP bezpośrednio za pomocą $ HTTP_RAW_POST_DATA. Surowe dane zostaną zakodowane za pomocą adresu URL i będzie to ciąg znaków, który można zapisać w pliku, jak opisano powyżej.

+0

Po prostu muszę wiedzieć, jak mój plik php na moim serwerze powinien wyglądać "

+0

Umieść znaczniki wokół odpowiedzi Hamisha i jesteś gotowy. – ekillaby

+0

Zrobiłem to i zadziałało, dziękuję, kiedy zrozumiem, że trochę więcej, niż wykorzystam na swój sposób. Dzięki za szybkie odpowiedzi –

Powiązane problemy