我現在有點沉默了。 所有我試圖做的是發送一個JSON文本到PHP,並處理和發送響應BACL ..轉義json被讀爲數組在php
這裏是我送我的textarea的值的數據..下面
**asdasd #$**&**%^*(AAAA SADQWEASD /// '' \\\ '' l; "" **
是發送到PHP的JSON(從控制檯得到它):
data={"Text":"asdasd #$&%^*(AAAA SADQWEASD /// '' \\\\\\ '' l; \"\" "}
我使用如下的jQuery AJAX功能:
function ajaxfunc(data, path){
$.ajax({
type: "POST",
url: path,
data: 'data='+data,
success: function(response){
}
});
}
在PHP中,我正在這樣做。
$res = json_decode(stripslashes(escapeJsonString($_POST['feed'])), true);
function escapeJsonString($value) {
# list from www.json.org: (\b backspace, \f formfeed)
$search = array("\n", "\r", "\u", "\t", "\f", "\b", "/", '"');
$replace = array("\\n", "\\r", "\\u", "\\t", "\\f", "\\b", "\/", "\"");
$result = str_replace($search, $replace, $value);
$escapers = array("\\", "/", "\"", "\n", "\r", "\t", "\x08", "\x0c");
$replacements = array("\\\\", "\\/", "\\\"", "\\n", "\\r", "\\t", "\\f", "\\b");
$result = str_replace($escapers, $replacements, $value);
return $result;
}
echo $res["Text"];
的問題是:& ..在PHP中,無法解析,因此響應爲空.. 我也想確認,檢測新行字符..基本上我期待的「所見即所得」使用JSON .. json_encode和json_decode
發送也許這是一個打字錯誤或混淆失敗,但'$ _POST ['feed']'不會包含您的數據,因爲您在'$ .ajax'調用中使用密鑰'data'發送了它。 – Andrew
@Andrew:是的,它是一個錯字..它應該是$ _POST ['data'] –
可能有更好的替代方案,你正在嘗試做什麼。爲什麼你需要將json格式的數據發送回服務器?如果你只是想以key => value對的方式訪問服務器上的數據,那麼你可以將JS對象傳遞給$ .ajax函數,並將它們編碼爲查詢字符串並將它們發佈到服務器。你能澄清你想在這裏做什麼嗎? – Simon