2017-09-27 139 views
0

我的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

歡迎來到StackOverflow! 你到目前爲止嘗試過什麼嗎? StackOverflow不是一個免費的代碼寫入服務,並且期待你 [嘗試先解決你自己的問題](http://meta.stackoverflow.com/questions/261592)。 請更新您的問題,以顯示您已經嘗試過的內容,顯示您在 [最小,完整和可驗證示例](http://stackoverflow.com/help/mcve)中遇到的具體問題。 欲瞭解更多信息,請參閱 [如何問一個好問題], 並採取 [網站之旅](http:// http:// stackoverflow.com/tour) –

+0

你能告訴你哪個函數在php中找到替代嗎? – tan

回答

0

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