Числовое значение символа php

Как преобразовать некоторый символ в числовой в php?

Мне нужна помощь, чтобы изменить символ в php. У меня есть код из Интернета:

char dest='a'; int conv=(int)dest; 

Могу ли я использовать этот код для преобразования символа в числовой? Или у вас есть идеи? Я просто хочу показать результат как десятичное число:

Используйте ord (), чтобы вернуть значение ascii. Вычитайте 96, чтобы вернуть число, где a = 1, b = 2 ….

Буквы верхнего и нижнего регистра имеют разные значения ASCII, поэтому, если вы хотите обрабатывать их одинаково, вы можете использовать strtolower () для преобразования верхнего регистра в нижний регистр.

Чтобы обрабатывать случай NULL , просто используйте if($dest) . Это будет верно, если $dest – это нечто иное, чем NULL или 0 .

PHP – это свободно типизированный язык, поэтому нет необходимости объявлять типы. Итак, char dest=’a’; это неверно. Переменные имеют $ префикс в PHP и не объявляют тип, поэтому он должен быть $dest = ‘a’; ,

Живой пример

 // Let's test the function. echo toNumber(NULL) . " "; echo toNumber('a') . " "; echo toNumber('B') . " "; echo toNumber('c'); // Output is: // 0 1 2 3 ?> 

PS: Здесь вы можете посмотреть значения ASCII .

Он действительно работает так же, как в примере, за исключением того, что вы должны использовать синтаксис php (и в качестве побочного элемента: язык, который, по вашему мнению, был наиболее вероятным, он не делал то же самое).

Впоследствии будет выполнено следующее:

На это очень сложно ответить, потому что это не вопрос, а просто немного.
Но если вы спросите.
Кажется, вам нужна таблица переводов, которая определяет ссылки между буквами и номерами

или что-то еще.
Вы можете достичь этого, используя массив, в котором будут указаны эти буквы и значения – нужные числа.

$defects_arr = array( 'A' -> 2, 'B' -> 3, 'C' -> 4' 'S' -> 1 >; 

Таким образом, вы можете преобразовать эти буквы в числа

$letter = 'A'; $number = $defects_arr($letter); echo $number; // outputs 1 

Но это все еще не то, что вы хотите.
Имеют ли эти типы дефектов какие-либо подробные эквиваленты? Если да, почему бы не использовать их вместо букв?

Рассказывать всю историю, а не немного, поможет вам избежать ошибок и сэкономить массу времени, как ваших, так и тех, кто будет отвечать.

Читайте также:  Php wordpress search form

Итак, если вам нужен код ASCII, вам нужно будет:

Если вы хотите что-то вроде:

Источник

Числовое значение символа php

ord — Convert the first byte of a string to a value between 0 and 255

Description

Interprets the binary value of the first byte of character as an unsigned integer between 0 and 255.

If the string is in a single-byte encoding, such as ASCII, ISO-8859, or Windows 1252, this is equivalent to returning the position of a character in the character set’s mapping table. However, note that this function is not aware of any string encoding, and in particular will never identify a Unicode code point in a multi-byte encoding such as UTF-8 or UTF-16.

This function complements chr() .

Parameters

Return Values

An integer between 0 and 255.

Examples

Example #1 ord() example

Example #2 Examining the individual bytes of a UTF-8 string

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 ;
>
?>

The above example will output:

Byte 0 of $str has value 240
Byte 1 of $str has value 159
Byte 2 of $str has value 144
Byte 3 of $str has value 152

See Also

  • chr() — Generate a single-byte string from a number
  • An » ASCII-table
  • mb_ord() — Get Unicode code point of character
  • IntlChar::ord() — Return Unicode code point value of character

User Contributed Notes 6 notes

As ord() doesn’t work with utf-8, and if you do not have access to mb_* functions, the following function will work well:
function ordutf8 ( $string , & $offset ) $code = ord ( substr ( $string , $offset , 1 ));
if ( $code >= 128 ) < //otherwise 0xxxxxxx
if ( $code < 224 ) $bytesnumber = 2 ; //110xxxxx
else if ( $code < 240 ) $bytesnumber = 3 ; //1110xxxx
else if ( $code < 248 ) $bytesnumber = 4 ; //11110xxx
$codetemp = $code — 192 — ( $bytesnumber > 2 ? 32 : 0 ) — ( $bytesnumber > 3 ? 16 : 0 );
for ( $i = 2 ; $i <= $bytesnumber ; $i ++) $offset ++;
$code2 = ord ( substr ( $string , $offset , 1 )) — 128 ; //10xxxxxx
$codetemp = $codetemp * 64 + $code2 ;
>
$code = $codetemp ;
>
$offset += 1 ;
if ( $offset >= strlen ( $string )) $offset = — 1 ;
return $code ;
>
?>
$offset is a reference, as it is not easy to split a utf-8 char-by-char. Useful to iterate on a string:
$text = «abcàê߀abc» ;
$offset = 0 ;
while ( $offset >= 0 ) echo $offset . «: » . ordutf8 ( $text , $offset ). «\n» ;
>
/* returns:
0: 97
1: 98
2: 99
3: 224
5: 234
7: 223
9: 8364
12: 97
13: 98
14: 99
*/
?>
Feel free to adapt my code to fit your needs.

Читайте также:  Оператор завершения программы python

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.

In fact, like most of PHP’s string functions, this function isn’t doing anything to do with character encoding at all — it is just interpreting a binary byte from a string as an unsigned integer. That is, ord(chr(200)) will always return 200, but what character chr(200) *means* will vary depending on what character encoding it is *interpreted* as part of (e.g. during display).

A technically correct description would be «Returns an integer representation of the first byte of a string, from 0 to 255. For single-byte encodings such as (7-bit) ASCII and the ISO 8859 family, this will correspond to the first character, and will be the position of that character in the encoding’s mapping table. For multi-byte encodings, such as UTF-8 or UTF-16, the byte may not represent a complete character.»

The link to asciitable.com should also be replaced by one which explains what character encoding it is displaying, as «Extended ASCII» is an ambiguous and misleading name.

Источник

Символ в число и обратно

Добрый вечер помогите пожалуйста!! Есть слово состоит из русских символов заглавных и нет, через ord я получаю номер какого либо символа слово находится в массиве и если эл. русский символ то я беру 2 значения и склеиваю их получается типа 208161 = С потом пытаюсь переделать 208161 обратно в символ и мне приходит какое левое значение помогите пожалуйста как это исправить.

Читайте также:  Input range vertical css

Число в битной системе конвертировать обратно
Добрый вечер, помогите додумать как конвертировать лучше число сохранёное в битной системе.

16-тиричное число в символ
имееься строка типа: 07 D9 0C 02 0D 24 2B 00 2D B9 38 нужно приобразовать каждое число в.

Как разбить число посимвольно и достать последний символ?
Например есть переменная $a = 321; Как записать в переменную $b последний символ, то есть единицу?

Перевод числа в символ и обратно
Посмотрите пожалуйста! Точки совсем не меняются на числа. Что не так?? Вот задача: Мальчику Васе.

if (preg_match('/[а-я]+/msi', $val)) { $one_pa = ord($val[$i + $a-1]); $two_pa = ord($val[$i + $a]); } $number = "$one_pa$two_pa";

Тут получается число и теперь я пытаюсь его вернуть в начальный вид, но получается, что то другое.

ЦитатаСообщение от Ozzys Посмотреть сообщение

И что это. В первом отрывке как минимум 3 переменные, которые берутся непонятно откуда и выглядят непонятно как. Во втором две (то есть ВСЕ которые там есть).

Я понимаю, что наговнокодил не обратил внимание, что все криво. У меня есть слово любое. Нужно получить номер каждого символа и к каждому номеру прибавить 1 и вернуть то что получилось в символ.

Добавлено через 52 секунды
Помогите как это грамотно реализовать

ЦитатаСообщение от Ozzys Посмотреть сообщение

Я понимаю, что наговнокодил не обратил внимание, что все криво. У меня есть слово любое. Нужно получить номер каждого символа и к каждому номеру прибавить 1 и вернуть то что получилось в символ.

 $s1 = "Слово"; $s2 = ""; for ($i = 0; $i  strlen($s1); $i++) $s2.=chr(ord($s1[$i])+1); echo $s2;

Добавлено через 1 минуту
спс вроде понял

ЦитатаСообщение от Ozzys Посмотреть сообщение

Как вернуть символ обратно в поток ввода
Добрый день. Подскажите, пожалуйста, аналог функции cin.putback() из C++, которая возвращает.

Как из char переделать обратно в символ в ответе
Всем привет. Есть такое задание: "Дан символьный массив А. Определить для каждого символа массива.

Пользователь вводит целое число n и ДВА символа. Программа выводит на экран последовательно символ №1 и символ
Пользователь вводит целое число n и ДВА символа. Программа выводит на экран последовательно символ.

Определить введенный символ: число, прописная буква, строчная, знак сравнения или математический символ
Написать программу которая запрашивает ввод любого символа, а после определяет его и выводит на.

Источник

Оцените статью