2009-02-26 35 views

Trả lời

22

Sử dụng chức năng ord

http://ca.php.net/ord

ví dụ.

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

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

@YzmirRamirez: để hiển thị byte bạn cần độ dài byte, không phải độ dài ký tự, do đó, việc sử dụng 'mb_strlen' thực sự là lỗi. – Ped7g

+0

Bạn đúng @ Ped7g. Tôi thường sử dụng các hàm mb_ ​​và thấy strlen call ở trên. Nhưng câu trả lời tốt hơn là dưới đây mà không yêu cầu cho các vòng lặp. –

3

Ord() thực hiện thủ thuật với bộ ký tự ASCII. Tuy nhiên, nếu bạn can thiệp vào các chuỗi nhiều byte (như UTF-8), bạn sẽ không may mắn và cần phải tự hack nó.

4

Nếu bạn đang nói về giá trị hex, điều này sẽ làm cho bạn:

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

Reference

+0

Đây là một câu trả lời tuyệt vời; tốt hơn nhiều so với các vòng lặp 'for' và các ký tự riêng lẻ. – miken32

19

Nếu bạn muốn để có được những chuỗi như một loạt các mã số nguyên, có một one- đẹp lót:

unpack('C*', $string) 

Hãy coi chừng, mảng kết quả được lập chỉ mục từ 1, không phải từ 0!

+0

+1 - _exactly_ những gì tôi cần – Hobo

Các vấn đề liên quan