2009-02-26 64 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开始!