Главная > Программирование > РНР: настольная книга программиста
<< Предыдущий параграф
Следующий параграф >>
<< Предыдущий параграф Следующий параграф >>
Макеты страниц

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():

string chr(int ascii)

Функция 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():

int ord(string string)

Для примера создадим скрипт, который будет осуществлять следующую операцию. Имеется 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.

<< Предыдущий параграф Следующий параграф >>
Оглавление