2011-01-20 7 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

간단 : PHP에서

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

+1

특정 키의 값을 가져 와서 저장하려면 예. 원시 POST 데이터 (키 값 쌍이 될 필요는 없습니다. 예를 들어 바이너리 데이터 일 수 있습니다)를 덤프하려는 경우 'php : // input'스트림이이를 읽습니다. 질문은 애매하고 "가능한 한 간단하게"요청되었습니다. 글쎄, 훨씬 간단하지 않습니다. – Hamish

+2

또한'file_put_contents'는 fopen, fwrite 및 fclose를 한 번에 수행하므로 사용하기 쉽고 읽을 수 있습니다. – Hamish

12

1)로부터 들어오는 요청 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) 문자열을 파일로 저장하십시오. json 문자열을 파일에 쓰려면 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로 인코딩되며 위에서 설명한대로 파일에 쓸 수있는 문자열입니다.

+0

그냥 내 서버에서 내 PHP 파일을 어떻게보아야하는지 알고 싶습니다. "

+0

012ish태그를 Hamish의 대답에 붙이면 가봐야합니다. – ekillaby

+0

나는 그것을했고, 고맙다, 일단 내가 알기에 조금 더 이해한다면, 나는 너의 길을 사용할 것이다. 빠른 답변 주셔서 감사합니다 –