2009-02-26 9 views

Antwort

22

ord Funktion

http://ca.php.net/ord

zB Verwendung.

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

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

@YzmirRamirez: um Bytes anzuzeigen, benötigen Sie Byte-Länge, nicht Zeichenlänge, so dass 'mb_strlen' ist eigentlich Bug. – Ped7g

+0

Sie sind richtig @ Ped7g. Ich benutze im Allgemeinen die mb_ Funktionen und sah Strlen Anruf oben. Aber die bessere Antwort ist unten, die keine for-Schleifen erfordert. –

3

Ord() macht den Trick mit einem ASCII-Zeichensatz. Wenn Sie sich jedoch in Multibyte-Strings (wie UTF-8) einmischen, haben Sie kein Glück und müssen es selbst hacken.

4

Wenn Sie über den Hex-Wert sprechen, sollte dies für Sie tun:

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

Reference

+0

Dies ist eine großartige Antwort; viel besser, als mit 'for' Loops und einzelnen Charakteren herumzuhantieren. – miken32

19

Wenn Sie die Zeichenfolge als ein Array von Integer-Codes bekommen, gibt es eine schöne Ein- Liner:

unpack('C*', $string) 

Vorsicht, das resultierende Array wird von 1 indiziert, nicht von 0!

+0

+1 - _exactly_ was ich brauchte – Hobo

Verwandte Themen