- Вывести символ по коду php
- Вывести символ по коду php
- Описание
- Список параметров
- Возвращаемые значения
- Примеры
- Смотрите также
- User Contributed Notes 5 notes
- Вывести символ по коду php
- Описание
- Список параметров
- Возвращаемые значения
- Список изменений
- Примеры
- Смотрите также
- User Contributed Notes 22 notes
- Получение символов строки на PHP
- Последний символ строки
- Цифры в строке
- Числа
Вывести символ по коду php
Прежде чем приступить к изучению этого вопроса, рассмотрим, что такое ASCII-коды, для чего они применяются и почему получили широкое распространение.
При создании компьютеров инженеры долго искали рациональное решение задачи способа хранения символов, которые вы видите на вашем мониторе. Не вникая в подробности, можно сказать просто, что символ расположен на мониторе и при нажатик клавиши происходит его появление. Но задумывались ли вы когда-нибудь над тем, как же осуществляется работа с этим самым символом в вашем компьютере, каким способом происходит удержание этого символа в памяти вашего компьютера? На самом деле это очень сложный процесс, поэтому мы расскажем поверхностно, углубляясь только в ту часть, которая действительна поможет вам при создании скриптов.
Символы, которые вы видите на экране вашего монитора, сохраняются в памяти компьютера при помощи кодов. Разработчиками была создана таблица кодов ANSI (American National Standards Institute), используемых при хранении символов в памяти компьютера или файлах. Таблица кодов ANSI содержит расширенный набор кодов ASCII (American Standard Codes for Information Interchange). Начальные 128 кодов ASCII были разработаны для телетайпных коммуникаций. Первые 32 кода — управляющие, хотя только четыре из них используются в программах под Windows. Коды от 32 до 127 принадлежат обычным алфавитно-цифровым символам латинского языка, специальным символам и знакам операций. Коды от 128 до 255 принадлежат дополнительному набору символов. Обратите внимание на то, что дополнительные символы, используемые программами под MS-DOS, отличаются от дополнительных символов, используемых программами под Windows.
Теперь перейдем к изучению функций, осуществляющих работу с этими кодами. Описываемые функции будут либо возвращать символ согласно значению таблицы кодов ASCII, либо, наоборот, преобразовывать его из символа в код, соответствующий коду этого символа в таблице кодов ASCII. Процесс преобразования является двухсторонний, поэтому и будет рассмотрено две функции:
Функция chr() позволяет возвращать строку символа, соответствующего коду ASCII, указанного в качестве параметров данной Синтаксис функции chr():
string chr(int ascii)
Функция chr() возвращает односимвольную строку, соответствующую указанному коду ASCII на месте параметра ASCII. Рассмотрим пример:
Здесь приведен список преобразования ASCII-кодов в обычные символы. В примере специально взят перечень элементов, чтобы вы могли проследить систематическую последовательность изменяющихся ASCII-кодов. Результатом работы данного примера будет совокупность символов:
Преобразование кодов ASCII в символы
Источник
Вывести символ по коду php
(PHP 4, PHP 5, PHP 7, PHP 8)
ord — Конвертирует первый байт строки в число от 0 до 255
Описание
Интерпретирует бинарное значение первого байта строки character как беззнаковое целое.
Если строка создана в однобайтовой кодировке, такой как ASCII, ISO-8859 или Windows 1252, результат функции будет эквивалентен позиции символа в соответствующей таблице кодировки. В любом случае, эта функция ничего не знает про кодировки и не сможет вернуть кодовую точку первого символа строки, закодированной в многобайтовой кодировке, такой как UTF-8 или UTF-16.
Эта функция дополняет функцию chr() .
Список параметров
Возвращаемые значения
Целое число от 0 до 255.
Примеры
Пример #1 Пример использования ord()
Пример #2 Просмотр индивидуальный байтов строки UTF-8
Результат выполнения данного примера:
Смотрите также
- chr() — Генерирует односимвольную строку по заданному числу
- » Таблица ASCII-кодов
- mb_ord() — Получает кодовую точку символа Unicode
- IntlChar::ord() — Получить код символ Unicode
User Contributed Notes 5 notes
this function convert UTF-8 string to RTF code string. I am using code of v0rbiz at yahoo dot com, thanks.
function cadena_rtf($txt)
<
$result = null;
for ($pos = 0; $pos 255) <
$result .= ‘\uc1\u’ . $ord . ‘*’;
> elseif ($ord > 32768) <
$result .= ‘\uc1\u’ . ($ord — 65535) . ‘*’;
> else <
$result .= «\\'» . dechex($ord);
>
> else <
$result .= $char;
>
>
return $result;
>
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.
I did not found a unicode/multibyte capable ‘ord’ function, so.
function uniord ( $u ) <
$k = mb_convert_encoding ( $u , ‘UCS-2LE’ , ‘UTF-8’ );
$k1 = ord ( substr ( $k , 0 , 1 ));
$k2 = ord ( substr ( $k , 1 , 1 ));
return $k2 * 256 + $k1 ;
>
?>
For anyone who’s looking to convert full strings to map and back it’s pretty simple but takes some getting used to. the code below saves an hour of scrounging codes for beginners like myself.
Источник
Вывести символ по коду php
(PHP 4, PHP 5, PHP 7, PHP 8)
chr — Генерирует односимвольную строку по заданному числу
Описание
Возвращает строку из одного символа, код которого задан аргументом codepoint , который интерпретируется как беззнаковое целое (unsigned integer).
Может использоваться для создания строки из одного символа однобайтовой кодировки, например, такой как ASCII, ISO-8859 или Windows 1252, путём указания позиции этого символа в таблице кодировки. Данная функция не подходит для генерации односимвольной строки в многобайтовых кодировках, таких как UTF-8 или UTF-16.
Эта функция дополняет функцию ord() .
Список параметров
Целое число от 0 до 255.
Значения за пределом диапазона (0..255) должны быть побитово сложены (побитовое И) с 255, что соответствует такому алгоритму:
Возвращаемые значения
Строка из одного символа, содержащая заданный байт.
Список изменений
Версия | Описание |
---|---|
7.4.0 | Функция больше не принимает неподдерживаемые значения codepoint и преобразует их в 0 . |
Примеры
Пример #1 Пример использования chr()
// Предполагается, что строка будет использовака как ASCII или ASCII-совместимая
$str = «Эта строка заканчивается на escape: » ;
$str .= chr ( 27 ); /* добавляет символ escape в конец $str */
/* Но обычно лучше использовать такую конструкцию */
$str = sprintf ( «Эта строка заканчивается на escape: %c» , 27 );
?>
Пример #2 Поведение при переполнении
Результат выполнения данного примера:
Пример #3 Создание строки UTF-8 из индивидуальных байтов
Результат выполнения данного примера:
Смотрите также
User Contributed Notes 22 notes
Another quick and short function to get unicode char by its code.
/**
* Return unicode char by its code
*
* @param int $u
* @return char
*/
function unichr ( $u ) <
return mb_convert_encoding ( ‘&#’ . intval ( $u ) . ‘;’ , ‘UTF-8’ , ‘HTML-ENTITIES’ );
>
?>
I spent hours looking for a function which would take a numeric HTML entity value and output the appropriate UTF-8 bytes. I found this at another site and only had to modify it slightly; so I don’t take credit for this.
function unichr ( $dec ) <
if ( $dec 128 ) <
$utf = chr ( $dec );
> else if ( $dec 2048 ) <
$utf = chr ( 192 + (( $dec — ( $dec % 64 )) / 64 ));
$utf .= chr ( 128 + ( $dec % 64 ));
> else <
$utf = chr ( 224 + (( $dec — ( $dec % 4096 )) / 4096 ));
$utf .= chr ( 128 + ((( $dec % 4096 ) — ( $dec % 64 )) / 64 ));
$utf .= chr ( 128 + ( $dec % 64 ));
>
return $utf ;
> ?>
So for example:
= «Chinese: 中文» ;
$str = preg_replace ( «/&#(\d<2,5>);/e» , «unichr($1);» , $str );
Here is a sample of encoding and decoding using «chr» and «ord».
function Encode ( $txtData , $Level ) <
for ( $j = 0 ; $j $Level ; $j ++) <
$tmpStr = » ;
for ( $i = 0 ; $i strlen ( $txtData ); $i ++)
$tmpStr .= ord ( substr ( strtoupper ( $txtData ), $i , 1 ));
$txtData = $tmpStr ;
>
return ( strlen ( $Level )). $Level . $txtData ;
>
function Decode ( $txtData ) <
$intLevel = substr ( $txtData , 1 , substr ( $txtData , 0 , 1 ));
$startStr = substr ( $txtData , substr ( $txtData , 0 , 1 )+ 1 , strlen ( $txtData ));
for ( $j = 0 ; $j $intLevel ; $j ++) <
for ( $i = 0 ; $i strlen ( $startStr ); $i += 2 )
$tmpStr .= chr ( intval ( substr ( $startStr , $i , 2 )));
$startStr = $tmpStr ;
$tmpStr = «» ;
>
return $startStr ;
>
echo Encode ( ‘123’ , 4 ). ‘
‘ ;
echo Decode ( Encode ( ‘123’ , 5 ));
?>
Want terminal colors in command line php scripts?
This should take care of that.
«[1;31m»,
‘LIGHT_GREEN’ => «[1;32m»,
‘YELLOW’ => «[1;33m»,
‘LIGHT_BLUE’ => «[1;34m»,
‘MAGENTA’ => «[1;35m»,
‘LIGHT_CYAN’ => «[1;36m»,
‘WHITE’ => «[1;37m»,
‘NORMAL’ => «[0m»,
‘BLACK’ => «[0;30m»,
‘RED’ => «[0;31m»,
‘GREEN’ => «[0;32m»,
‘BROWN’ => «[0;33m»,
‘BLUE’ => «[0;34m»,
‘CYAN’ => «[0;36m»,
‘BOLD’ => «[1m»,
‘UNDERSCORE’ => «[4m»,
‘REVERSE’ => «[7m»,
function termcolored($text, $color=»NORMAL», $back=1) <
global $_colors;
$out = $_colors[«$color»];
if($out == «») < $out = "[0m"; >
if($back) <
return chr(27).»$out$text».chr(27).chr(27).»[0m».chr(27);
>else <
echo chr(27).»$out$text».chr(27).chr(27).»[0m».chr(27);
>//fi
>// end function
echo termcolored(«test\n», «BLUE»);
?>
I needed to generate an invalid UTF-8 character for testing with JSON. This did the trick:
echo ‘Bogus UTF-8 character at end’ . chr ( 0xC6 ) ;
Secure password generator with a variable maximum amount of symbols.
function passwdGen ( $minLength = 8 , $maxLength = 12 , $maxSymbols = 2 )
<
$symbolCount = 0 ;
srand ((double) microtime () * 1000003 );
for ( $i = 0 ; $i rand ( $minLength , $maxLength ); $i ++)
<
do
<
$char = rand ( 33 , 126 );
if ( $symbolCount $maxSymbols || ! $isSymbol )
<
break;
>
>
while ( true );
$passwd = sprintf ( ‘%s%c’ , isset( $passwd ) ? $passwd : NULL , $char );
>
// rivencodec 1.0
// encode riverse ascii 1 simple function can encode/decode
// can use it for secure source with speed encode text
function rivencodec ( $ch , $a = 0 ) <
while((@ $b = $ch [ $a ++])) < $ch [ $a - 1 ] = chr ( 255 - ord ( $b )); >
return $ch ;
>
$zz = rivencodec ( «abcdefghijklmn» );
echo ‘encode: ‘ , $zz , ‘
‘ , PHP_EOL ;
$yy = rivencodec ( $zz );
echo ‘decode: ‘ , $yy , ‘
‘ , PHP_EOL ;
In addition to replacing Microsoft Windows smart quotes, as sgaston demonstrated on 2006-02-13, I replace all other Microsoft Windows characters using suggestions[1] published by character code specialist[2] Jukka Korpela.
= str_replace ( chr ( 130 ), ‘,’ , $str ); // baseline single quote
$str = str_replace ( chr ( 131 ), ‘NLG’ , $str ); // florin
$str = str_replace ( chr ( 132 ), ‘»‘ , $str ); // baseline double quote
$str = str_replace ( chr ( 133 ), ‘. ‘ , $str ); // ellipsis
$str = str_replace ( chr ( 134 ), ‘**’ , $str ); // dagger (a second footnote)
$str = str_replace ( chr ( 135 ), ‘***’ , $str ); // double dagger (a third footnote)
$str = str_replace ( chr ( 136 ), ‘^’ , $str ); // circumflex accent
$str = str_replace ( chr ( 137 ), ‘o/oo’ , $str ); // permile
$str = str_replace ( chr ( 138 ), ‘Sh’ , $str ); // S Hacek
$str = str_replace ( chr ( 139 ), ‘ , $str ); // left single guillemet
$str = str_replace ( chr ( 140 ), ‘OE’ , $str ); // OE ligature
$str = str_replace ( chr ( 145 ), «‘» , $str ); // left single quote
$str = str_replace ( chr ( 146 ), «‘» , $str ); // right single quote
$str = str_replace ( chr ( 147 ), ‘»‘ , $str ); // left double quote
$str = str_replace ( chr ( 148 ), ‘»‘ , $str ); // right double quote
$str = str_replace ( chr ( 149 ), ‘-‘ , $str ); // bullet
$str = str_replace ( chr ( 150 ), ‘-‘ , $str ); // endash
$str = str_replace ( chr ( 151 ), ‘—‘ , $str ); // emdash
$str = str_replace ( chr ( 152 ), ‘
Источник
Получение символов строки на PHP
Пусть у нас есть какая-то строка. Каждый символ в этой строке имеет свой порядковый номер: первый символ номер 0 , второй символ — номер 1 , третий символ номер 2 и так далее.
При необходимости можно получить доступ к определенному символу строки по его номеру. Для этого пишется имя переменный, после этого имени ставятся квадратные скобки и в этих скобках указывается номер символа.
Давайте посмотрим на примере. Пусть у нас дана вот такая строка:
Давайте выведем какие-нибудь символы этой строки:
А теперь давайте изменим нулевой символ:
Номер символа также может храниться и в переменной:
Дана строка ‘abcde’ . Обращаясь к отдельным символам этой строки выведите на экран символ ‘a’ , символ ‘c’ , символ ‘e’ .
Дана переменная со строкой ‘abcde’ . Обращаясь к отдельным символам этой строки запишите в новую переменную символы этой строки в обратном порядке, то есть ‘edcba’ .
Дана переменная $str со строкой ‘abcde’ и переменная $num с номером символа. Выведите на экран символ, номер которого хранится в переменной $num .
Последний символ строки
Давайте выведем последний символ строки. При этом сделаем так, чтобы наш скрипт сам определял номер последнего символа, независимо от длины строки.
Пусть у нас есть такая строка:
Как вы видите, количество символов в этой строке равно 5 . Если немного подумать, то становится очевидным, что номер последнего символа этой строки будет на 1 меньше ее длины, так как нумерация символов начинается с нуля.
Получается, что зная длину строки, мы можем отнять от нее 1 и получить номер последнего символа, а затем по этому номеру можно получить сам последний символ.
Как вы уже знаете, длину строки можно найти с помощью функции strlen . Исходя из этого найдем номер последнего символа:
Используем найденный номер для вывода символа на экран:
Промежуточную переменную $last можно и не вводить:
Дана строка. Выведите на экран ее последний символ.
Дана строка. Выведите на экран ее предпоследний символ.
Дана строка. Выведите на экран ее предпредпоследний символ.
Цифры в строке
Как вы уже знаете, строки могут состоять из цифр. В этом случае все будет работать аналогично:
Можно, например, найти сумму первых двух цифр нашего числа и это будет работать:
Дана строка ‘12345’ . Найдите сумму цифр этой строки.
Числа
Попытка получить символ числа приведет к ошибке:
Для решения проблемы можно преобразовать наше число к строке:
Дано число 12345 . Найдите сумму цифр этого числа.
Дано число 12345 . Найдите произведение цифр этого числа.
Дано число 12345 . Переставьте цифры этого числа в обратном порядке.
Источник