2011-01-20 72 views
12

我需要使用下面的代碼發佈數據到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 
} 

回答

47

簡單爲:

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

<?php $ content = $ _POST ['content']; $ file =「text.txt」; $ Saved_File = fopen($ file,'w'); fwrite($ Saved_File,$ content); fclose($ Saved_File); ?> – 2011-01-20 02:55:10

+1

如果你想獲得一個特定密鑰的值並保存它,那麼是的。如果您只想轉儲原始POST數據(不一定是鍵值對 - 例如它可能是二進制數據),那麼'php:// input'流將會讀取它。這個問題很模糊,並要求「儘可能簡單」..好吧,它並沒有變得更簡單。 – Hamish 2011-01-20 03:03:54

12

1)在PHP中,以獲得從一個傳入請求POST數據使用$ _POST陣列。 PHP中的POST數組是關聯的,這意味着每個傳入參數都將是一個鍵值對。在開發中,理解你實際獲得的$ _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)將字符串存儲在文件中。嘗試使用fopen(),fwrite()和fclose()將json字符串寫入文件。

$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編碼,並且它將是一個字符串,您可以按照上述方式寫入文件。