ASP经典CLng函数 - 转换为PHP

时间:2018-01-21 17:49:51

标签: php asp-classic

我有一个用ASP经典创建的旧网站,现在我鼓起勇气将其转换为PHP。必须说我不是这两种语言的专家。

有一个简单的功能让我发疯。它以我以前从未见过的方式使用CLng,我在PHP中找不到类似的方法。

以下是ASP classic中的功能:

Function TransferDecode(ByRef Source)
Dim C, I, P, S, K
    C = Len(Source) / 2
    TransferDecode = ""
    For I = 0 to C - 1
        P = I * 2 + 1
        S = Mid(Source, P, 2)
        K = CLng("&H" & S)
        TransferDecode = TransferDecode & Chr(K)
    Next
End Function

这是我(uncessefull)尝试转换为PHP:

function transferDecode($source) {
    $r = '';
    $c = strlen($source) / 2;
    for ($i = 0; $i <= $c - 1; $i++) {
        $p = $i * 2 + 1;
        $s = substr($source, $p, 2);
        $k = '&H'.$s;
        $r .= chr((int)$k);
    }
    return $r;
}

请有人解释一下“CLng(”&amp; H“&amp; S)”做什么? PHP中是否有类似的CLng方法?

谢谢!

1 个答案:

答案 0 :(得分:1)

我尝试这样的事情:

$r .= chr(intval($s, 16));

注意:根本不使用变量$k

另外,vbscript中的字符串是从1开始的,而php中的字符串是从0开始的,因此$p应该计算为$p = $i * 2;