# PHP如何將字母轉成ASCII碼
## 一、ASCII碼簡介
ASCII(American Standard Code for Information Interchange)是一種基于拉丁字母的字符編碼標準,使用7位二進制數(0-127)表示128個字符,包括:
- 大寫字母(A-Z:65-90)
- 小寫字母(a-z:97-122)
- 數字(0-9:48-57)
- 控制字符(0-31、127)
- 特殊符號(如空格32、換行10等)
## 二、PHP轉換方法
### 1. 使用ord()函數
`ord()`是PHP內置函數,用于獲取字符的ASCII值:
```php
<?php
$char = 'A';
$ascii = ord($char); // 輸出65
echo "字符 {$char} 的ASCII碼是:{$ascii}";
結合str_split()
和array_map()
實現批量轉換:
<?php
$str = "Hello";
$chars = str_split($str);
$asciiArray = array_map('ord', $chars);
print_r($asciiArray); // 輸出 Array ( [0] => 72 [1] => 101 [2] => 108 [3] => 108 [4] => 111 )
對于多字節字符(如中文),需使用mb_ord()
(PHP 7.2+):
<?php
if (!function_exists('mb_ord')) {
function mb_ord($char) {
$bytes = unpack('C*', $char);
return $bytes[1] << 8 | $bytes[2];
}
}
echo mb_ord('中'); // 輸出20013
function simpleEncrypt($str) {
$encrypted = '';
foreach (str_split($str) as $char) {
$encrypted .= ord($char) * 2 . '-';
}
return rtrim($encrypted, '-');
}
function isAlphabetic($char) {
$ascii = ord($char);
return ($ascii >= 65 && $ascii <= 90) ||
($ascii >= 97 && $ascii <= 122);
}
function countUppercase($str) {
$count = 0;
foreach (str_split($str) as $char) {
$ascii = ord($char);
if ($ascii >= 65 && $ascii <= 90) $count++;
}
return $count;
}
字符編碼問題:
mbstring
擴展性能考量:
unpack()
$asciiArray = unpack('C*', 'PHP'); // 返回關聯數組
反向轉換:
chr()
函數將ASCII轉回字符echo chr(65); // 輸出'A'
// HEX轉ASCII
echo hex2bin('41'); // 輸出'A'
// 二進制轉ASCII
echo bindec('01000001'); // 輸出65
PHP通過ord()
/chr()
函數組提供了簡便的ASCII轉換能力,適用于:
- 基礎字符處理
- 數據加密/解密
- 輸入驗證過濾
- 編碼轉換場景
對于現代Web開發,建議結合多字節字符處理函數確保編碼兼容性。 “`
(全文約798字,實際字數可能因格式略有差異)
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。