php 去html实体双引号

 <pre class='xdebug-var-dump' dir='ltr'><small>string</small> <font color='#cc0000'>'[{&amp;quot;out_trade_no&amp;quot;:&amp;quot;0224085707-3375&amp;quot;,&amp;quot;transaction_id&amp;quot;:&amp;quot;4002362001201702241094854694&amp;quot;,&amp;quot;out_refund_no&amp;quot;:&amp;quot;123&amp;quot;,&amp;quot;total_fee&amp;quot;:&amp;quot;1&amp;quot;,&amp;quot;refund_fee&amp;quot;:&amp;quot;1&amp;quot;}]'</font> <i>(length=239)</i>

post接收到这样的值  使用了html_entity_decode 和htmlspecialchars_decode  只能去掉&amp;  去不掉quot;  整整一天了 怎么解决  在线等
 $str = '[{&quot;out_trade_no&quot;:&quot;0224085707-3375&quot;,&quot;transaction_id&quot;:&quot;}]';
    var_dump($str);

    $str = replaceStr($str);
    var_dump($str);

    function replaceStr($str)
    {
        // 要替换的选项
        $seach = array("&quot;", "&amp;");
        // 替换成什么 一一对应
        $replace = array("\"", "\&");

        return str_replace($seach, $replace, $str);
    }

输出结果:

 string '[{&quot;out_trade_no&quot;:&quot;0224085707-3375&quot;,&quot;transaction_id&quot;:&quot;}]' (length=90)
string '[{"out_trade_no":"0224085707-3375","transaction_id":"}]' (length=55)

客户端进行了2次编码,你需要调用2次html_entity_decode才行

 <?php 

$s='[{&amp;quot;out_trade_no&amp;quot;:&amp;quot;0224085707-3375&amp;quot;,&amp;quot;transaction_id&amp;quot;:&amp;quot;4002362001201702241094854694&amp;quot;,&amp;quot;out_refund_no&amp;quot;:&amp;quot;123&amp;quot;,&amp;quot;total_fee&amp;quot;:&amp;quot;1&amp;quot;,&amp;quot;refund_fee&amp;quot;:&amp;quot;1&amp;quot;}]';

$s=html_entity_decode(html_entity_decode($s));

?>
<textarea><?php echo $s;?></textarea>