php字符串如何转为16进制字符串




php字符串转为16进制的方法:首先创建一个PHP示例文件;然后通过String2Hex方法将字符串转为16进制;最后通过return返回转换结果即可。

php字符串和16进制编码的相互转换

php字符串是十进制的

  1. /**
  2. **字符串转16进制
  3. **/
  4. public function String2Hex($string){
  5. $hex='';
  6. for ($i=0; $i < strlen($string); $i++){
  7. $hex .= dechex(ord($string[$i]));
  8. }
  9. return $hex;
  10. }
  11. /**
  12. **16进制转字符串
  13. **/
  14. public function Hex2String($hex){
  15. $string='';
  16. for ($i=0; $i < strlen($hex)-1; $i+=2){
  17. $string .= chr(hexdec($hex[$i].$hex[$i+1]));
  18. }
  19. return $string;
  20. }
  21. // example:
  22. $hex = String2Hex("test sentence...");
  23. // $hex contains 746573742073656e74656e63652e2e2e
  24. echo Hex2String($hex);
  25. // outputs: test sentenc

我在做aes加密是发现一个问题,发现将字符串转16进制会出现转出数据位数对不上的问题可以修改为如下试试:

  1. public function String2Hex($string){
  2. $hex='';
  3. // for ($i=0; $i < strlen($string); $i++){
  4. // $hex .= dechex(ord($string[$i]));
  5. // }
  6. $hex = bin2hex($string);
  7. return $hex;
  8. }

原文地址:https://www.php.cn/php-ask-460807.html