string chr(integer ascii_code)
Функция chr предназначена для получения символа по ASCII-коду. Эта функция полезна в ситуациях, когда необходимо использовать непечатаемые символы, не имеющие соответствующего кода с символом обратной косой черты или в которых такой код порождает неоднозначность. Представим сценарий, который производит запись форматированного текста в файл. Обычно для обозначения маркера конца строки используется последовательность n. Но при переносе такого сценария из среды Windows в среду Linux его поведение может измениться, так как в ОС Windows для таких целей предназначена последовательность символов "возврат каретки" и "перевод строки". Для того чтобы каждая строка завершалась только символом перевода строки, можно использовать функцию chr в следующем виде: chr(10) (листинг 12.25).
Конечно, для определения ASCII-кода можно всегда использовать коды с обратной косой чертой. Их перечень дан в приложении Б, "ASCII-коды", и речь о них шла в главе 2, "Переменные, операторы и выражения".
Еще одной альтернативой функции chr является функция sprintf. Формат %c соответствует одному символу, а это позволяет задать ASCII-код для одного символа. Кроме того, функции наподобие ereg_replace принимают целые числа, интерпретируемые ими как ASCII-коды.
Для получения ASCII-кода символа используется функция ord. ASCII-коды приводятся в приложении Б, "ASCII-коды".

| Листинг 12.25. Функция chr_
<?php
//открыть тестовый файл
$fp = fopen("data.txt", "w");
//сделать в него несколько записей, имеющих
// символы перевода строки в качестве маркеров конца строки
fwrite($fp, " запись 1" . chr(10));
fwrite($fp, " запись 2" . chr(10));
// закрыть файл
fclose($fp);
?>

string chunk_split(string data, integer length, string marker)
Функция chunk_split (листинг 12.26) возвращает данные из аргумента data после вставки маркера конца строки с постоянными интервалами. По умолчанию после каждых 76 символов вставляются символы "возврат каретки" и "перевод строки". Кроме того, можно задать разные расстояния между маркерами и установить разные маркеры.
Эту функцию в свое время добавил Саша Шуманн специально для разбиения строк в коде base64 на 76-символьные последовательности. И хотя ereg_replace обеспечивает такую же функциональность, функция chunk_split работает быстрее. Но она не подходит для выравнивания текста, т.е. она не подходит для осуществления мягкого переноса на печатаемых страницах. 

j Листинг 12.26. Функция chunk split_
<?php
$encodedData = chunk_split(base64_encode($rawData));

string convert_cyr_string(string text, string from, string to)
Функция convert_cyr_string (листинг 12.27) предназначена для преобразования строки из одной кодировки кириллицы в другую. Аргументами from и to задаются односимвольные коды (табл. 12.2).
Кодирование и декодирование
j Листинг 12.27. Функция convert_cyr_string_
<?php
$new = convert_cyr_string($old, "a", "w");
?>

string dirname(string path)
Функция dirname (листинг 12.28) возвращает только ту часть пути, в которой описывается каталог. Завершающая косая черта не включается в возвращаемое значение. Каталоги разделяются косой чертой. На платформе Windows могут также использоваться обратные косые. Для получения части, в которой задается имя файла, используется функция basename. Если заданный путь содержит только имя файла, функция возвращает одну точку.

| Листинг 12.28. Функция dirname_
<?php
$path = "/usr/local/bin/ls"; //распечатать /usr/local/bin print(dirname($path));

 ?> 
string escapeshellarg(string argument)
Функция escapeshellarg (листинг 12.29) добавляет обратную косую черту перед любым символом, который может вызывать проблемы в команде оболочки, и заключает весь аргумент в одинарные кавычки.

| Листинг 12.29. Функция escapeshellarg_
<?php
$arg = escapeshellarg("potentially; bad text $ ' }"); print("Trying echo $arg<br>n"); system("echo $arg");
?>