ホームページ  >  記事  >  バックエンド開発  >  この関数は PHP のどのような知識であり、その機能は何ですか?

この関数は PHP のどのような知識であり、その機能は何ですか?

WBOY
WBOYオリジナル
2016-06-13 13:00:56911ブラウズ

この関数は PHP の知識のどの側面を表し、またその機能は何ですか?
Sajia は、私がこれまで経験したことのない次の機能を見つけました。
まず、PHP の知識はどのような側面にあるのでしょうか?ファイル処理?それともバイナリ?
2番目に、最初から最後まで説明してください。なぜ 00XX、メモリーコードを使用するのか。

function js_unescape($str)    <br />
{    <br />
    $ret = '';    <br />
    $len = strlen($str);    <br />
    for ($i = 0; $i < $len; $i++)    <br />
    {    <br />
        if ($str[$i] == '%' && $str[$i+1] == 'u')    <br />
        {    <br />
            $val = hexdec(substr($str, $i+2, 4));    <br />
            if ($val < 0x7f) $ret .= chr($val);    <br />
            else if($val < 0x800) $ret .= chr(0xc0|($val>>6)).chr(0x80|($val&0x3f));    <br />
            else $ret .= chr(0xe0|($val>>12)).chr(0x80|(($val>>6)&0x3f)).chr(0x80|($val&0x3f));    <br />
            $i += 5;    <br />
        }    <br />
        else if ($str[$i] == '%')    <br />
        {    <br />
            $ret .= urldecode(substr($str, $i, 3));    <br />
            $i += 2;    <br />
        }    <br />
        else $ret .= $str[$i];    <br />
    }    <br />
    return $ret;    <br />
}  

-----解決策--------------------------------
デコード、unescape (js) の PHP バージョンです
js のエスケープ メソッドは、すべてのスペース、句読点、アクセントが
で終わる charstring (Unicode 形式) の内容を含む文字列値を返します。 他の非 ASCII 文字は %xx エンコーディングに置き換えられます。xx は文字を表す 16 進数と同じです。たとえば、スペースは「%20」を返します
255 を超える文字値は %uxxxx 形式で保存されます。

0x7f より大きいは漢字、上位ビットは 1、ビット単位の演算、コア演算は中国語の文字をデコードすることです
0x800 も右に 6 ビットシフトすると何かが出てくるのですが、

--- ---解決策--------------------
この投稿は、xuzuning によって 2012 年に最後に投稿されました。 10-24 11:05:13 編集

中 ucs-2
4e2d

01001110 00101101
utf-8
e4b8ad
1110
0100 10111000 10101101

フランジョンへ
0x7f より大きいものは漢字であることはわかっているのに、0x800 より小さいものは漢字ではないことはなぜ分からないのですか
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。