25.2. Работа с ASCII-кодами в 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(),
• ord().
Функция chr() позволяет возвращать строку символа, соответствующего коду ASCII, указанного в качестве параметров данной Синтаксис функции chr():
Функция chr() возвращает односимвольную строку, соответствующую указанному коду ASCII на месте параметра ASCII. Рассмотрим пример:
<?php
$string = chr(56);
$string1 = chr(57);
$string2 = chr(58);
$string3 = chr(59);
$string4 = chr(60);
$string5 = chr(61);
echo $string."<br>";
echo $string1."<br>";
echo $string2."<br>";
echo $string3."<br>";
echo $string4."<br>";
echo $string5."<br>";
?>
Здесь приведен список преобразования ASCII-кодов в обычные символы. В примере специально взят перечень элементов, чтобы вы могли проследить систематическую последовательность изменяющихся ASCII-кодов. Результатом работы данного примера будет совокупность символов:
8
9
:
;
<
=
Коды ASCII с 56 по 61 соответствуют выведенным символам. Когда применяются данные операции и насколько они эффективны, можно понять из того, что эти операции очень распространены при работе с памятью.
Рассмотрим другую аналогичную функцию работы с ASCII-символами — ord(). Она выполняет противоположные функции chr() операции, т. е. преобразовывает символ в целочисленное значение, соответствующее коду ASCII-таблицы. Синтаксис функции ord():
Для примера создадим скрипт, который будет осуществлять следующую операцию. Имеется HTML-форма, в которую при необходимости пользователь может вводить либо код ASCII, либо сам символ. Далее происходит выполнение скрипта и в результате пользователь видит на экранелибосимвол, соответствующий коду ASCII, либо, наоборот, сам код ASCII, соответствующий символу. Для начала создадим HTML, содержащий две формы:
Файл index.htm:
<html>
<head>
<title>Программа</title>
</head>
<body>
Преобразование кодов ASCII в символы
<form action="test.php" method = "get">
<input type="Text" name="name"size ="3" >
<input type="Submit" name="ame" value="Пoлyчить символ">
</form>
Преобразование символа в ASCII-коды
<form action="test .php" method = "get">
<input type="Text" name="name1" size = "1">
<input type="Submit" name="name1" value="Получить ASCII-код">
</form>
</body>
</html>
При помощи этих форм можно осуществлять ввод необходимых значений кода ASCII либо символов. После того как ввод осуществлен, вы можете нажать на кнопку и этим самым передадите данные этой формы в скрипт test.php. Скрипт, получив данные, производит обработку и выведение результата. При этом скрипт ссы--лается на значения переменных, которые были заданы при вызове этого скрипта нашей формой. Чтобы понять, как производит обработку данных скрипт test.php, приведем его содержимое:
Файл test.php:
<?php
include ("index.htm");
$string = chr($name);
echo $string."<br>";
$string1 = ord($name1) ;
if ($string1 != "0")
echo $string1."<br>";
?>
На этом примере можно полностью ознакомиться с принципами работы функции ord(). Функции chr() и ord() являются важными при решении разнообразных задач. Например, можно без труда производить операции с кодами ASCII-символов, при этом не прибегая к манипуляции самими символами. Со временем вы научитесь применять эти функции не только в простых программах, и это значительно облегчит работу с РНР.
Функции chr() и ord() используются в РНР 3 и РНР 4.