PHP escape unescape 实现

2015-01-26 10:46  1066人阅读  评论 (0)
Tags: php

JavaScript中的escapeunescape是吧字符串转换为unicode十六进制编码,跟JSON的编码格式是一样的,所以可以通过PHP中的json_encodejson_decode实现PHP版本的escapeunescape.

代码如下:

<?php
function escape($str) {
    return str_replace('\\', '%', substr(json_encode($str), 1, -1));
}

function unescape($str) {
    return json_decode('"'.str_replace('%', '\\', $str).'"');
}

$str = '%u90D1%u5DDE%u5E02 %u82B1%u56ED%u8DEF%u6E20%u4E1C%u8DEF 11%u5C4275%u53F7';
$str_escape = '郑州市 花园路渠东路 11层75号';

echo "$str<br>\n$str_escape<br>\n";

echo unescape($str), "<br>\n";
echo escape($str_escape), "<br>\n";