看板 PHP 關於我們 聯絡資訊
小弟目前正在利用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
chaoms: 看不懂說明~但猜一下應該是沒有encode就post 11/04 20:24
chaoms: 可以查一下rfc的定義,看內容像自己寫http post 11/04 20:29
airgo: 對 HTTP POST code是自己Key的 所以是少了encode嗎 11/04 21:09
wilson200106: 都找到原因了,就先用簡單的str_replace一下試試看 11/04 21:11
airgo: POST是參考範例就使用的方法 詳細我還不是很懂 11/04 21:12
wilson200106: 雖然我覺得,是換行符號啦XDD 11/04 21:14
針對我要傳輸的資料我再講清楚一點好了 我現在的做法是把我收到的資料當成是一組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
chaoms: Urlencode一下資料先試試看啦 11/04 23:34
chaoms: 有可能web server不支援非正規格而已 11/04 23:36
airgo: 經過encode編碼後的確可以正常傳輸了 感謝大家的回覆!! 11/05 19:45