当空格是发布数据php的最后一个字符时发出问题
发布时间:2020-12-13 15:56:54 所属栏目:PHP教程 来源:网络整理
导读:我正在尝试允许我的流媒体应用的主持人使用contenteditable,jquery和php直接在观看页面中修改剧集的数据.一切都很完美,除非场地最后有空间; 正如我发现的那样,请求被正确发送.但是最后一个空格是在服务器端使用两个字符大小,而不是使用php trim()删除,所以它
我正在尝试允许我的流媒体应用的主持人使用contenteditable,jquery和php直接在观看页面中修改剧集的数据.一切都很完美,除非场地最后有空间;
正如我发现的那样,请求被正确发送.但是最后一个空格是在服务器端使用两个字符大小,而不是使用php trim()删除,所以它不再作为空格接收.我的所有数据,页面和服务器都编码为utf-8,因此它不是一个编码问题. 使用base64编码,我发现这个字符是“?”(包含空格). 我做错什么了吗?基本代码如下,您可以自己尝试: HTML: <section> <span id=kubi_synopsys>Some content and the space: </span> </section> 使用Javascript: $("#synopsys").keydown(function(e){ if(e.keyCode===13){//press enter $("#synopsys").html($("#synopsys").text()) //removing new lines //posting data //#episode is a <data> tag containing the current episode's info $.post("synopsys-set.php",{ series: $("#episode").data("series"),season: $("#episode").data("season"),episode: $("#episode").data("episode"),synopsys: $("#synopsys").text() },"json") .success(function(data){ console.log("success",atob(data.response)) }) .error(function(){ console.log("error") }) } }) PHP: <?php //acquisition $series = isset($_POST['series'])? (int)$_POST['series'] :0; $season = isset($_POST['season'])? (int)$_POST['season'] :0; $episode = isset($_POST['episode'])? $_POST['episode'] :0; $version = isset($_POST['version'])? htmlspecialchars(trim($_POST['version'])) :''; $synopsys = isset($_POST['synopsys'])? htmlspecialchars(trim($_POST['synopsys'])) :''; header('Content-type: application/json'); echo json_encode(array('response'=> base64_encode($synopsys))); 解决方法
尝试删除:
$("#synopsys").html($("#synopsys").text()) //removing new lines 因为这不是必需的.无论如何,你在发布数据时在#synopsys上使用text(). 您可以使用trim()删除所有前导和尾随空格. synopsys: $("#synopsys").text().trim() 要么 您可以使用正则表达式删除所有空格字符(制表符,换行符等) synopsys: $("#synopsys").text().replace(/s+/,' ').trim() (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |