2009-02-26 65 views

回答

22

使用Ord函數

http://ca.php.net/ord

如。

<?php 
$var = "nÖ§9q1Fª£ˆæÓ§Œ_»—Ló]j"; 

for($i = 0; $i < strlen($var); $i++) 
{ 
    echo ord($var[$i])."<br/>"; 
} 
?> 
+1

@YzmirRamirez:顯示需要字節長度的字節,而不是字符長度,所以使用`mb_strlen`實際上是bug。 – Ped7g 2016-10-07 10:50:20

+0

你是對的@ Ped7g。我通常使用mb_函數並在上面看到strlen調用。但更好的答案在下面,不需要循環。 – 2016-10-10 22:08:39

3

Ord()確實有一個ASCII字符集的伎倆。但是,如果你使用多字節字符串(比如UTF-8),你倒黴了,需要自己破解它。

4

如果你正在談論的十六進制值,這應該爲你做:

$value = unpack('H*', "Stack"); 
echo $value[1]; 

Reference

+0

這是一個很好的答案;比`for`循環和單個字符擺弄好得多。 – miken32 2016-01-25 20:06:51

19

如果你希望得到的字符串作爲整數代碼的數組,有一個漂亮的單襯裏:

unpack('C*', $string) 

請注意,結果數組從1開始索引,而不是從0開始!