PHP 4 на практике

       

Открытие файлового манипулятора процесса


popen( )

Наряду с обычными файлами можно открывать файловые манипуляторы для взаимодействия с процессами на сервере. Задача решается функцией рореn( ), которая имеет следующий синтаксис:

int popen (string команда, string режим)

Параметр команда определяет выполняемую системную команду, а параметр режим описывает режим доступа:

<?

// Открыть файл "spices.txt" для записи

$fh = fopen("spices.txt","w");

// Добавить несколько строк текста

fputs($fh, "Parsley, sage, rosemary\n");

fputs($fh, "Paprika, salt, pepper\n");

fputs($fh, "Basil, sage, ginger\n");

// Закрыть манипулятор

fclose($fh);

// Открыть процесс UNIX grep для поиска слова Basil в файле spices.txt

$fh - popen("grep Basil < spices.txt", "r");

// Вывести результат работы grep

fpassthru($fh);

?>

Результат выглядит так:

Basil, sage, ginger

Функция fpassthru( ) является аналогом функции passthru( ), рассматриваемой в разделе «Запуск внешних программ» этой главы.

pclose( )

После выполнения всех операций файл или процесс необходимо закрыть. Функция pclose( ) закрывает соединение с процессом, заданным манипулятором, по аналогии с тем, как функция fclose( ) закрывает файл, открытый функцией fopen( ). Синтаксис функции pclose( ):

int pclose (int манипулятор}

В параметре манипулятор передается манипулятор, полученный ранее при успешном вызове рореn( ).



Содержание раздела