php將字串轉換為16進位的方法:首先建立一個PHP範例檔案;然後建立一個strToHex方法;接著在方法體內透過for循環以及dechex等函數實現字串轉十六進位的功能;最後透過strToHex方法進行轉換即可。
本文操作環境:Windows7系統、PHP7.1版、Dell G3電腦。
PHP 字串和十六進位互轉
今天在做專案中,因為要呼叫別人網站的接口,結果需要對請求和返回的時間進行十六進位加密處理,於是在網路上查了下資料謝了一個轉換Demo做個記錄。
如果在TP下使用可以將下面函數放到common.php中
一,加密函數
<?php /** *字符串转十六进制函数 *@pream string $str='abc'; */ function strToHex($str){ $hex=""; for($i=0;$i<strlen($str);$i++) $hex.=dechex(ord($str[$i])); $hex=strtoupper($hex); return $hex; } ?>
二、解密函數
<?php /** *十六进制转字符串函数 *@pream string $hex='616263'; */ function hexToStr($hex){ $str=""; for($i=0;$i<strlen($hex)-1;$i+=2) $str.=chr(hexdec($hex[$i].$hex[$i+1])); return $str; } ?>
【推薦學習:《PHP影片教學》】
加密解密轉換函數使用Demo事例,這裡為了方便寫在了一個類別中。
<?php class Test{ /** *字符串转十六进制函数 *@pream string $str='abc'; */ public function strToHex($str){ $hex=""; for($i=0;$i<strlen($str);$i++) $hex.=dechex(ord($str[$i])); $hex=strtoupper($hex); return $hex; } /** *十六进制转字符串函数 *@pream string $hex='616263'; */ public function hexToStr($hex){ $str=""; for($i=0;$i<strlen($hex)-1;$i+=2) $str.=chr(hexdec($hex[$i].$hex[$i+1])); return $str; } } <span style="white-space:pre"></span>//测试Demo效果 $test = new Test(); $str = '要加密的内容sxfenglei'; $data = $test->strToHex($str); echo '加密内容:要加密的内容sxfenglei <br>'.$data.'<hr>'; $output = $test->hexToStr($data); echo '解密内容:E8A681E58AA0E5AF86E79A84E58685E5AEB9737866656E676C6569 <br>'.$output; ?>
運行結果:
加密内容:要加密的内容sxfenglei E8A681E58AA0E5AF86E79A84E58685E5AEB9737866656E676C6569 解密内容:E8A681E58AA0E5AF86E79A84E58685E5AEB9737866656E676C6569 要加密的内容sxfenglei
以上是php 怎麼將字串轉換為16進位的詳細內容。更多資訊請關注PHP中文網其他相關文章!