太好了,客户键入“ %10 ”而不是“ 10%”
0_o
$PACKAGE_json_decode = json_decode(urldecode(($_POST['textarea']), true);
print_r($PACKAGE_json_decode); // LENGTH 0
foreach($PACKAGE_json_decode as $row){
}
错误: “消息:为foreach()提供了无效的参数”
通过AJAX发送回去时,如何在不使%10产生其他含义的情况下进行网址解码?
解码似乎会产生方形字符,我无法在此处粘贴...您知道...看起来有点像“ []”
*当客户端取回字符串时,该字符串必须与客户端相同-他们将其保存为%,而希望将其保存为%。 -关于更换它的任何建议吗?
答案 0 :(得分:1)
您可以直接编码由Ajax发送的请求,如下所示:
$.ajax({
type:'POST',
dataType: 'json',
...
或者这样:
JSON.stringify('%10');
现在在json_decode()
内部的PHP中,如下所示。
$PACKAGE_json_decode = json_decode($_POST['textarea']);
像这样,您的%10
将变成"%10"
,等等!
答案 1 :(得分:1)
URL encoding中使用%字符。您可以先将%从前端删除,然后再传递给服务器,或者在服务器端进行处理。
答案 2 :(得分:0)
请使用以下代码,让我知道它在哪里?
<?php
$url_encode = urldecode("sampleTextWith%");
echo '<b>Ecoded URL </b>'. $url_encode."<br>";
$obj = new StdClass();
$obj->text = $url_encode;
$encoded_json = json_encode($obj);
echo '<b>Encoded JSON </b>'. $encoded_json."<br>";
$decoded_json = json_decode($encoded_json);
echo "<b>Decoded JSON </b>";
print_r($decoded_json);
echo "<br>";
foreach($decoded_json as $row){
echo "<b>Row Value : </b>". $row."<br>";
}
?>