0

客户输入“ %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?

并且 decode 似乎产生了我不能在这里粘贴的方形字符......你知道......看起来有点像“[]”

*当客户取回字符串时,该字符串需要与客户相同 - 他们用 % 保存它,他们希望用 % 将它返回。- 关于更换它有什么建议吗?

4

3 回答 3

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>";
    }

?>
于 2018-10-10T08:48:09.990 回答
0

您可以直接对 Ajax 发送的请求进行编码,如下所示:

$.ajax({
    type:'POST',
    dataType: 'json',
    ...

或者像这样:

JSON.stringify('%10');

在你的 PHP 中,刚才json_decode(),如下所示。

$PACKAGE_json_decode = json_decode($_POST['textarea']);

像这样,你%10会变成"%10",等等!

于 2018-10-06T04:25:36.130 回答
0

% 字符用于URL 编码。在传递到服务器之前从前端删除 % ,或者在服务器端进行相同的处理。

于 2018-10-06T04:38:43.150 回答