如何将JavaScript代码转换为与PHP等效的代码?

问题描述:

我的js代码:如何将JavaScript代码转换为与PHP等效的代码?

var b = "aHR0cDovL3d3dy5oZHpvZy5jb20vZ2V0X2ZpbGUvМS84Y2Е5МTЕ4ZmМyNmVkNTk0ZmI5Yzc2ZWI2Y2Y2YWVmМС85NDАwМС85NDU4Ny85NDU4Ny5tcDQvP3RpbWU9МjАxNzА5МjYyМDIxNDYmcz05МTUzZmNmYjАyOTUyOWQxY2JhZTВkYzNkY2ZhODVmZiZicj0xODЕ1JmQ9МTcwNyZmPXZpZGVvLm0zdTg~"; 
 
var f = "\u0410\u0412\u0421D\u0415FGHIJKL\u041cNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz.,~".indexOf(b.charAt(0)); 
 
document.write(f);

它返回26 我转换的js代码的PHP代码:

$url = 'aHR0cDovL3d3dy5oZHpvZy5jb20vZ2V0X2ZpbGUvМS84Y2Е5МTЕ4ZmМyNmVkNTk0ZmI5Yzc2ZWI2Y2Y2YWVmМС85NDАwМС85NDU4Ny85NDU4Ny5tcDQvP3RpbWU9МjАxNzА5МjYyМDIxNDYmcz05МTUzZmNmYjАyOTUyOWQxY2JhZTВkYzNkY2ZhODVmZiZicj0xODЕ1JmQ9МTcwNyZmPXZpZGVvLm0zdTg~'; 
$str = "\u0410\u0412\u0421D\u0415FGHIJKL\u041cNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz.,~"; 
$str = preg_replace_callback('/\\\\u([0-9a-fA-F]{4})/', function ($match) { 
return mb_convert_encoding(pack('H*', $match[1]), 'UTF-8', 'UCS-2BE'); 
}, $str); 
$f = strpos($str, $url[0]); 
echo $f; 

但它返回31.为什么呢?

+0

外观替换'String.fromCharCode' – Isaac

+0

欢迎来到*! 你到目前为止尝试过什么吗? *不是一个免费的代码写入服务,并且期待你 [尝试先解决你自己的问题](http://meta.*.com/questions/261592)。 请更新您的问题,以显示您已经尝试过的内容,显示您在 [最小,完整和可验证示例](http://*.com/help/mcve)中遇到的具体问题。 欲了解更多信息,请参阅 [如何问一个好问题], 并采取 [网站之旅](http:// http:// *.com/tour) –

+0

你能告诉你哪个函数在php中找到替代吗? – tan

JavaScript中的'\ u0421'代表一个字符。然而,在Php中,事实并非如此。这就是为什么JavaScript在索引0和'a'的第一个实例之间显示更少的空间。

为了解决这个问题......我敢肯定这是你在http://php.net/manual/en/function.chr.php找什么... How to decode Unicode escape sequences like "\u00ed" to proper UTF-8 encoded characters?

+0

谢谢,我用它,但PHP仍然返回31,不返回26.为什么? – justcntt

+0

你可以使用它来代替其实... $ str = json_decode('''。$ str。'“'); var_dump($ str); $ f = strpos($ str,$ url [0]); –

+0

感谢@John,你能帮我转换:64!= g &&(c + = String.fromCharCode(e));到PHP? – justcntt