客户输入“%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具有不同含义的情况下进行urldecode?
解码似乎产生了那个方形字符,我不能粘贴在这里......你知道......看起来有点像“[]”
*当客户端将其取回时,字符串需要相同 - 他们将其保存为%,他们希望以%返回。 - 有关更换它的任何建议吗?
%字符用于URL encoding。您可以在传递到服务器之前从前端删除%,也可以在服务器端处理相同的内容。
您可以直接对Ajax发送的请求进行编码,如下所示:
$.ajax({
type:'POST',
dataType: 'json',
...
或者像这样:
JSON.stringify('%10');
在PHP内部,现在只需json_decode()
,如下所示。
$PACKAGE_json_decode = json_decode($_POST['textarea']);
像这样,你的%10
将成为"%10"
,等瞧!
请使用以下代码,让我知道它在哪里打破?
<?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>";
}
?>