Php chuyển đổi mã char thành mã ascii

Là một nhà phát triển người Pháp, tôi thường bắt gặp các ký tự không phải ASCII trong dữ liệu người dùng nhập vào. Để tạo các từ tương đương rõ ràng, thân thiện với tìm kiếm, tôi đã tạo hàm sau để loại bỏ các dấu trong khi vẫn giữ nguyên tính toàn vẹn của chuỗi

Thí dụ

$str = "À l'île, en été, quelle félicité !";

echo accent2ascii($str); // A l'ile, en ete, quelle felicite

Vào chế độ toàn màn hình Thoát chế độ toàn màn hình

Chức năng

/**
 * Converts accentuated characters (àéïöû etc.) 
 * to their ASCII equivalent (aeiou etc.)
 *
 * @param  string $str
 * @param  string $charset
 * @return string
 */
function accent2ascii(string $str, string $charset = 'utf-8'): string
{
    $str = htmlentities($str, ENT_NOQUOTES, $charset);

    $str = preg_replace('#&([A-za-z])(?:acute|cedil|caron|circ|grave|orn|ring|slash|th|tilde|uml);#', '\1', $str);
    $str = preg_replace('#&([A-za-z]{2})(?:lig);#', '\1', $str); // pour les ligatures e.g. 'œ'
    $str = preg_replace('#&[^;]+;#', '', $str); // supprime les autres caractères

    return $str;
}

Vào chế độ toàn màn hình Thoát chế độ toàn màn hình


Đừng quên để lại một like để khuyến khích mình đăng thêm nhiều đoạn mã PHP hữu ích

Mã tiêu chuẩn của Mỹ để trao đổi thông tin là một bộ đặc biệt gồm 255 số đánh giá các chữ cái, ký hiệu và hành động được sử dụng trong hầu hết các máy tính. Ví dụ: 74 là "J", 106 là "j", 123 là { và 32 là khoảng trắng. Để chuyển đổi sang ASCII từ các ký tự văn bản, bạn nên sử dụng hàm chr(), hàm này lấy một giá trị ASCII làm tham số duy nhất và trả về văn bản tương đương nếu có. Hàm ord() thì ngược lại - nó nhận vào một chuỗi và trả về giá trị ASCII tương đương

Ví dụ


Điều đó sẽ xuất ra như sau

The second letter in the string is S
ASCII number 109 is equivalent to m

Bạn muốn học PHP 7?

Hacking with PHP đã được cập nhật đầy đủ cho PHP 7 và hiện có sẵn dưới dạng PDF có thể tải xuống. Nhận hơn 1200 trang học PHP thực hành ngay hôm nay

Nếu điều này hữu ích, vui lòng dành chút thời gian để nói với những người khác về Hacking với PHP bằng cách tweet về nó

Chương tiếp theo. Dây đo >>

Chương trước. Thay thế các phần của chuỗi

Chuyển đến

Nhà. Mục lục

Bản quyền ©2015 Paul Hudson. Theo tôi. @haistraraws

(PHP 4, PHP 5, PHP 7, PHP 8)

ordChuyển đổi byte đầu tiên của chuỗi thành giá trị trong khoảng từ 0 đến 255

Sự mô tả

ord ( chuỗi $character ). int

Nếu chuỗi ở dạng mã hóa byte đơn, chẳng hạn như ASCII, ISO-8859 hoặc Windows 1252, điều này tương đương với việc trả về vị trí của một ký tự trong bảng ánh xạ của bộ ký tự. Tuy nhiên, lưu ý rằng chức năng này không nhận biết bất kỳ mã hóa chuỗi nào và đặc biệt sẽ không bao giờ xác định điểm mã Unicode trong mã hóa nhiều byte, chẳng hạn như UTF-8 hoặc UTF-16

Hàm này bổ sung cho chr() .

Thông số

character

Một nhân vật

Giá trị trả về

Một số nguyên từ 0 đến 255

ví dụ

Ví dụ #1 ord() ví dụ

$str "\n";
if (
ord($str) == 10) {
    echo 
"The first character of \$str is a line feed.\n";
}
?>

Ví dụ #2 Kiểm tra các byte riêng lẻ của chuỗi UTF-8

declare(encoding='UTF-8');
$str "🐘";
for ( 
$pos=0$pos strlen($str); $pos ++ ) {
 
$byte substr($str$pos);
 echo 
'Byte ' $pos ' of $str has value ' ord($byte) . PHP_EOL;
}
?>

Ví dụ trên sẽ xuất ra

Byte 0 của $str có giá trị 240
Byte 1 của $str có giá trị 159
Byte 2 của $str có giá trị 144
Byte 3 of $str has value 152

Xem thêm

  • chr() - Tạo chuỗi một byte từ một số
  • Một » bảng ASCII
  • mb_ord() - Nhận điểm mã Unicode của ký tự
  • quốc tế. ord() - Trả về giá trị điểm mã Unicode của ký tự

arglanir+phpnet tại gmail dot com ¶

10 năm trước

________số 8

thanh lương trà dot collins tại cwtdigital dot com ¶

9 năm trước

Regarding character sets, and whether or not this is "ASCII". Firstly, there is no such thing as "8-bit ASCII", so if it were ASCII it would only ever return integers up to 127. 8-bit ASCII-compatible encodings include the ISO 8859 family of encodings, which map various common characters to the values from 128 to 255. UTF-8 is also designed so that characters representable in 7-bit ASCII are coded the same; byte values higher than 127 in a UTF-8 string represent the beginning of a multi-byte character.

/**
 * Converts accentuated characters (àéïöû etc.) 
 * to their ASCII equivalent (aeiou etc.)
 *
 * @param  string $str
 * @param  string $charset
 * @return string
 */
function accent2ascii(string $str, string $charset = 'utf-8'): string
{
    $str = htmlentities($str, ENT_NOQUOTES, $charset);

    $str = preg_replace('#&([A-za-z])(?:acute|cedil|caron|circ|grave|orn|ring|slash|th|tilde|uml);#', '\1', $str);
    $str = preg_replace('#&([A-za-z]{2})(?:lig);#', '\1', $str); // pour les ligatures e.g. 'œ'
    $str = preg_replace('#&[^;]+;#', '', $str); // supprime les autres caractères

    return $str;
}
0

/**
 * Converts accentuated characters (àéïöû etc.) 
 * to their ASCII equivalent (aeiou etc.)
 *
 * @param  string $str
 * @param  string $charset
 * @return string
 */
function accent2ascii(string $str, string $charset = 'utf-8'): string
{
    $str = htmlentities($str, ENT_NOQUOTES, $charset);

    $str = preg_replace('#&([A-za-z])(?:acute|cedil|caron|circ|grave|orn|ring|slash|th|tilde|uml);#', '\1', $str);
    $str = preg_replace('#&([A-za-z]{2})(?:lig);#', '\1', $str); // pour les ligatures e.g. 'œ'
    $str = preg_replace('#&[^;]+;#', '', $str); // supprime les autres caractères

    return $str;
}
1

The second letter in the string is S
ASCII number 109 is equivalent to m
0

paco tại olecode dot com ¶

2 năm trước

The second letter in the string is S
ASCII number 109 is equivalent to m
1

The second letter in the string is S
ASCII number 109 is equivalent to m
2

The second letter in the string is S
ASCII number 109 is equivalent to m
3

The second letter in the string is S
ASCII number 109 is equivalent to m
4

The second letter in the string is S
ASCII number 109 is equivalent to m
5

The second letter in the string is S
ASCII number 109 is equivalent to m
6

v0rbiz tại yahoo chấm com ¶

18 năm trước

The second letter in the string is S
ASCII number 109 is equivalent to m
7

The second letter in the string is S
ASCII number 109 is equivalent to m
8

Không tên ¶

8 tháng trước

The second letter in the string is S
ASCII number 109 is equivalent to m
9

ẩn danh ¶

1 năm trước

$character0

$character1

$character2

ASCII PHP là gì?

Hàm PHP chr() Hàm chr() trả về một ký tự từ giá trị ASCII đã chỉ định . Giá trị ASCII có thể được chỉ định ở dạng giá trị thập phân, bát phân hoặc hex. Các giá trị bát phân được xác định bởi một số 0 đứng đầu, trong khi các giá trị hex được xác định bởi một 0x đứng đầu.

CHR() và Ord() có phải là hàm ngược nhau trong PHP không?

Mô tả. Hàm chr() tạo một ký tự từ giá trị ASCII đã chỉ định. Hàm này là hàm nghịch đảo của hàm ord(), hàm này thực hiện ngược lại chức năng của hàm này .

ord() trong PHP là gì?

Hàm ord() trả về giá trị ASCII của ký tự đầu tiên của chuỗi .

Làm cách nào để chuyển đổi ASCII thành char?

Để chuyển đổi kiểu dữ liệu cao hơn thành thấp hơn, chúng ta cần thực hiện typecasting. Ở đây, ký tự ASCII của giá trị số nguyên sẽ được lưu trữ trong biến char. Để lấy giá trị thực trong biến char, bạn có thể thêm '0' với biến int. Ngoài ra, bạn có thể sử dụng Ký tự

ord() trong PHP là gì?

Hàm ord() trả về giá trị ASCII của ký tự đầu tiên của chuỗi .

Hàm nào được sử dụng để lấy giá trị ASCII của một ký tự PHP?

PHP chr() . Giá trị ASCII có thể được chỉ định ở dạng giá trị thập phân, bát phân hoặc hex.

Giá trị ASCII của A đến Z là gì?

Giá trị ASCII của bảng chữ cái viết thường là từ 97 đến 122 . Và, giá trị ASCII của bảng chữ cái viết hoa là từ 65 đến 90.

Hàm nào được sử dụng để truy xuất giá trị ASCII?

Hàm ASCII() trả về giá trị ASCII cho ký tự cụ thể.