boolean rewind(resource file)
Функция rewind (листинг 9.37) перемещает внутренний указатель файла PHP назад на начало файла. Это равносильно работе функции fseek при переводе указателя на нулевую позицию.

| Листинг 9.37. Функция rewind_
<?php
/*
** распечатать файл, а затем повторно распечатать первую строку
*/
// открыть локальный файл $myFile = fopen("data.txt", "r"); while(!feof($myFile)) {
// прочесть строку из файла $myLine = fgetss($myFile, 255); print("$myLine <br>n");
}
rewind($myFile);
$myLine = fgetss($myFile, 255);
print("$myLine <br>n");
// закрыть файл
fclose($myFile);
?>

boolean rewinddir(integer handle)
Функция rewinddir переустанавливает внутренний указатель PHP в начало каталога. Она возвращает значение TRUE, если при этом не возникает ошибка, в противном случае она возвращает значение FALSE. Дескриптором является целое число, полученное функцией opendir.
boolean rmdir(string directory)
Функция rmdir (листинг 9.38) предназначена для удаления каталога. При этом каталог должен быть пустым. Для удаления файла используется функция unlink.

| Листинг 9.38. Функция rmdir_
<?php
if(rmdir("/tmp/leon"))
{
print("Каталог удален");
}
else
{
print(" Каталог не удален");
}
?>

array scandir(string path, boolean reverse_order)
Функция scandir возвращает массив с именами файлов, которые можно найти по указанному пути. По умолчанию все значения отсортированы в алфавитном порядке; если указать необязательный аргумент reverse_order, их можно получить в обратном порядке.
set_file_buffer(resource file, integer size)
В настоящий момент эта функция является псевдонимом функции stream_set_write_buffer.
string sha1_file(string filename)
Функция sha1_file возвращает хеш SHA-1 (Secure Hash Algorithm 1) для заданного файла. Эти 160-битовые хеш-ключи являются уникальными и представляют собой альтернативу хеш-ключам MD5.
array stat(string filename)
Функция stat выполняет соответствующую С-функцию и возвращает массив, который содержит 13 элементов, пронумерованных с нуля. Если аргумент filename указывает на символическую ссылку, массив будет отображать информацию, связанную с файлом, на который указывает эта ссылка. Для получения информации о самой ссылке воспользуйтесь функцией lstat. В табл. 9.6 приведены компоненты массива.
resource stream_context_create(array options)
Функция stream_context_create создает контекст потока, используемый для настройки и управления потоками. Данный контекст можно использовать для различных потоков, открытых с помощью функции fopen. Необязательный аргумент options устанавливает один или несколько параметров для контекста. Это должен быть массив массивов. Каждый ключ должен указывать на массив, содержащий пары "ключ-значение".
array stream_context_get_options(resource context)
Функция stream_context_get_options возвращает параметры заданного контекста или потока.
boolean stream_context_set_option(resource context, string wrapper, string option, string value)
Функция stream_context_set_options устанавливает один параметр заданного контекста или потока. 
boolean stream_context_set_params(resource context, array options)
Функция stream_context_set_params устанавливает параметры заданного контекста или потока. В массиве options используются названия параметров для ключей.
boolean stream_filter_append(resource stream, string filter)
Функция stream_filter_append добавляет фильтр в конец списка фильтров потока.
boolean stream_filter_prepend(resource stream, string filter)
Функция stream_filter_prepend добавляет фильтр в начало списка фильтров потока.
array stream_get_filters()
Функция stream_get_filters возвращает список имеющихся фильтров, включая и зарегистрированный вами.
array stream_get_wrappers()
Функция stream_get_wrappers возвращает список имеющихся оболочек, включая и зарегистрированную вами.
array stream_get_meta_data(resource file)
Функция stream_get_meta_data (листинг 9.39; рис. 9.2) возвращает массив с описанием состояния открытого потока, созданного функцией fopen, fsockopen или pfsockopen. В табл. 9.7 приведены элементы возвращаемого массива.
Операционная система
 Элемент eof может иметь значение TRUE даже в том случае, когда имеются еще непрочитанные байты. При этом можно использовать функцию feof. 

Листинг 9.39. Функция stream_get_meta_data

<?php
//Подключиться к PHP-узлу
if(!($myFile = fopen("http://www.php.net/", "r")))
{
print("файл невозможно открыть"); exit;
}
// вывести метаданные
print_r(stream_get_meta_data($myFile));
// закрыть файл
fclose($myFile);
?>
Операционная система
boolean stream_register_filter(string name, string class)
Функция stream_register_filter (листинг 9.40) позволяет определить фильтр потока. Необходимо определить имя фильтра и имя класса, расширяющего php_user_filter. В табл. 9.8 приведены методы, которые можно включить в заданный класс. Если метод не применяется, PHP использует метод порождающего класса.
Фильтры, изменяющие данные по посимвольному принципу, просты в использовании, так как они, вероятнее всего, нуждаются в методах read и write. Фильтры, изменяющие длину входящих и исходящих данных, вероятнее всего, нуждаются в буфере.
Операционная система
Листинг 9.40. Функция stream_register_filter

<?php
// задать фильтр
class caseChanger extends php_user_filter
{
function read($maximum)
{
// получить данные из потока $data = parent::read($maximum); // поменять регистр на верхний $data = ucwords($data); // вернуть данные return($data);
}
3}
// зарегистрировать фильтр
stream_register_filter("corephp.cc", "caseChanger"); // открыть поток 
$fp = fopen("/tmp/test.txt", "rb"); //подключить фильтр к потоку stream_filter_append($fp, "corephp.cc"); // прочитать содержимое
$data = ""; while(!feof($fp))
{
$data .= fgets($fp, 255);
}
// закрыть поток fclose($fp); //отобразить содержимое print($data);
?>