0
根據這個答案https://stackoverflow.com/a/2115554/2311074我認爲json_encode
是否存儲換行符爲\n
或\r\n
取決於操作系統。不過,我今天發現,我可以在同一個操作系統(Ubuntu)上同時生成json_encode
的輸出。.serialize()方法將 r添加到換行符中?
考慮例如
<form id='form'>
<textarea id='amd' name='stuff'></textarea>
</form>
<button id='lol'>Press Me</button>
與jQuery
$(document).ready(function() {
$('#lol').click(function(){
var text = $('#amd').val();
$.ajax({
type: "POST",
url: ajax.php,
data: {stuff: text}
});
});
和以下ajax.php
$text = $_POST['stuff'];
file_put_contents('test.txt', json_encode($text));
現在輸入以下
會寫在text.txt
以下內容: 「這是一個\ nbreak了」
但是,如果我改變在jQuery腳本的數據attribut到
data: $('#form').serialize()
然後我找到text.txt
「這是一個\ r \ nbreak了」
爲什麼連載()產生這種額外\r
到我的換行符\ n嗎?我甚至不使用Windows。
客戶端和服務器都是Ubuntu? – Mat
爲什麼idk,但如果是這種情況唯一的解決方案將是:'file_put_contents('test.txt',str_replace('\ r \ n',PHP_EOL,json_encode($ text)));' – Xorifelse
@Mat yes 。我在ubuntu上使用Xampp,因此客戶端和服務器甚至完全相同。我也嘗試過使用不同的Ubuntu和Win 7客戶端的真實Ubuntu服務器,結果相同。 – Adam