[請益] POST形式接收資料問題

看板PHP作者 (韋高)時間8年前 (2016/11/04 17:47), 8年前編輯推噓1(108)
留言9則, 3人參與, 最新討論串1/1
小弟目前正在利用POST的形式將我們的資料傳到server端 POST的格式如下 POST process.php HTTP/1.1 Content-type: application/x-www-form-urlencoded Content-Length: 102 Host: XXX.ee.nthu.edu.tw data= data_string 要上傳的資料用char接收每一筆資料在串成一個string PHP上接收的寫法如下 $save_data=$_POST["data"]; if($save_data!=NULL){ $filename = fopen("raw_data.txt","w+"); fwrite($filename, $save_data); fclose($filename); echo "WRITE SUCCESS <br>"; } 現在問題在於我接收這個string的server端他收到的這串string會是不完整的 目前發現要是我這串string內若有ASCII編碼的NULL這個編碼 資料就會中斷在這裡,似乎是PHP在讀值時是將NULL這個編碼當成字串的結束 有沒有什麼方法可以讓PHP讀完整串資料呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.114.14.79 ※ 文章網址: https://www.ptt.cc/bbs/PHP/M.1478252842.A.89F.html

11/04 20:24, , 1F
看不懂說明~但猜一下應該是沒有encode就post
11/04 20:24, 1F

11/04 20:29, , 2F
可以查一下rfc的定義,看內容像自己寫http post
11/04 20:29, 2F

11/04 21:09, , 3F
對 HTTP POST code是自己Key的 所以是少了encode嗎
11/04 21:09, 3F

11/04 21:11, , 4F
都找到原因了,就先用簡單的str_replace一下試試看
11/04 21:11, 4F

11/04 21:12, , 5F
POST是參考範例就使用的方法 詳細我還不是很懂
11/04 21:12, 5F

11/04 21:14, , 6F
雖然我覺得,是換行符號啦XDD
11/04 21:14, 6F
針對我要傳輸的資料我再講清楚一點好了 我現在的做法是把我收到的資料當成是一組ASCII碼在傳送 也就是如果我的裝置接收到的資料是41、42、43 在裝置上我會把它變成ASCII碼,也就是A、B、C 在串成一串string=ABC這樣去傳送它 那現在我發現如果我要送出的資料是41、42、0、43 ASCII編碼會是A、B、NULL、C 但是在server上收到的資料會僅有string=AB 所以才不解是哪裡的問題 那我目前正在研究encode的用意,不知道能不能解決這問題 ※ 編輯: airgo (140.114.14.79), 11/04/2016 22:02:36

11/04 23:34, , 7F
Urlencode一下資料先試試看啦
11/04 23:34, 7F

11/04 23:36, , 8F
有可能web server不支援非正規格而已
11/04 23:36, 8F

11/05 19:45, , 9F
經過encode編碼後的確可以正常傳輸了 感謝大家的回覆!!
11/05 19:45, 9F
文章代碼(AID): #1O75agYV (PHP)
文章代碼(AID): #1O75agYV (PHP)