2011-12-16 34 views
6

Tôi có một chuỗi như thế:PHP chuỗi hex

[0-9A-Za-z\+/=]* 

Làm thế nào tôi có thể chuyển đổi trong các hình thức sau đây:

"\133\x30\55\x39\101\x2d\132\x61\55\x7a\134\x2b\57\x3d\135\x2a" 

Có bất kỳ chức năng cho điều đó?

+5

Quy tắc tâm thần phân liệt của bạn để quyết định xem bạn muốn biểu mẫu thập phân hay dạng thập phân? –

Trả lời

11
function strtohex($string) 
{ 
    $string = str_split($string); 
    foreach($string as &$char) 
    $char = "\x".dechex(ord($char)); 
    return implode('',$string); 
} 

print strtohex("[0-9A-Za-z\+/=]*"); 

Đoạn mã trên sẽ cung cấp cho bạn

\x5b\x30\x2d\x39\x41\x2d\x5a\x61\x2d\x7a\x5c\x2b\x2f\x3d\x5d\x2a 

Tôi biết rằng nó không giống như sản lượng mà bạn mong đợi, nhưng điều đó dường như không phải là chuỗi hex ở tất cả.

+0

Tuyệt! Cảm ơn ! :) Tôi sẽ đánh dấu câu trả lời của bạn là câu trả lời sau khi giới hạn 5 phút :) –

2

Nếu bạn muốn thực hiện một chuỗi như vậy obfuscation, sau đó sử dụng một cái gì đó giống như cách tiếp cận @Kristians. Và bạn có thể thay thế giữa hai phương pháp mã hóa với ví dụ:

$char = (++$i%2) ? "\x".dechex(ord($char)) : "\\".decoct(ord($char)); 
Các vấn đề liên quan