В этой главе описываются функции, взаимодействующие с операционной системой (ОС) и оборудованием, на котором она работает. Большая часть этих функций связана с файлами, другие взаимодействуют с командными оболочками, позволяющими выполнять программы. Кроме того, в настоящей главе затрагиваются вопросы отладочных функций, возвращающих информацию о PHP.
9.1. Файлы
Описанные в этой главе функции помогают манипулировать файлами или возвращают информацию о них. Все они включают команды, которые выполняются в командных оболочках Unix или Windows. Если функции, описываемые здесь, ссылаются на файл или каталог, можно указывать имя файла, который находится в том же каталоге, что и сам сценарий. При этом можно не задавать абсолютный или относительный путь. Каталоги вида . и .. допустимы как в Unix, так и в Windows. Кроме того, на Windows-машинах можно задавать имя устройства. Символ обратной косой черты является ограничителем каталогов и имен файлов при работе под управлением Windows, но и обычные косые тоже интерпретируются корректно.
boolean chdir(string directory)
При запуске сценария PHP его путем по умолчанию является путь к каталогу, в котором находится сам сценарий, т.е. если полный путь к сценарию будет таким: /users/leon/public_html/somescript.php, то все пути, с которыми он работает, берутся относительно /users/leon/public_html/. Значение пути по умолчанию можно изменить с помощью функции chdir (листинг 9.1), которая возвращает значение TRUE, если изменение сделано, и значение FALSE, если сценарию не удается поменять каталог.
Листинг 9.1. Функция chdir
<?php
if(chdir("/tmp")) {
print("текущий каталог? /tmp");
}
else
{
print("HeB03Mo;KHO поменять на /tmp");
}
boolean chgrp(string filename, string group)
В функции chgrp (листинг 9.2) заложена идея Unix, заключающаяся в изменении группы, к которой принадлежит файл. При успешном исходе возвращается значение TRUE. Если невозможно изменить группу, возвращается значение FALSE. Под управлением Windows эта функция всегда возвращает значение TRUE и возвращает файл в неизмененном виде. Функция chgrp имеет две родственные функции - chmod и chown. Если необходимо определить группу, к которой принадлежит файл в данный момент, можно воспользоваться функцией filegroup. Аналогичные команды Unix можно найти на соответствующей странице справки (man-странице) ОС Unix.
| Листинг 9.2. Функция chgrp_
<?php
if(chgrp("log.txt", "editors"))
{
print("log.txt поменял свою группу на editors");
}
else
{
print("log.txt не поменял свою группу на editors ");
}
?>
boolean chmod(string filename, integer mode)
Функция chmod (листинг 9.3) устанавливает права доступа к данному файлу в ОС Unix на основе выбранного режима, который интерпретируется аналогично командам Unix, за исключением того, что он не преобразуется в восьмеричное значение. Если он не имеет префикса 0, chmode рассматривается как десятичное число. В Unix права доступа для владельца, группы пользователей и других пользователей задаются соответственно тремя восьмеричными числами. Для того чтобы комбинировать привилегии, можно добавлять режимы. Например, для того чтобы получить права на чтение и выполнение файла, необходимо воспользоваться режимом 5. Режимы файлов приведены в табл. 9.1. Справку можно получить и на man-странице команды chmod в системе Unix.
Под управлением ОС Windows функция chmod имеет ограниченное использование. Режимы, описанные в табл. 9.2, специфицированы и компанией Microsoft. Ими можно манипулировать с помощью операции "побитового ИЛИ" (|), но практически реальное значение имеет только разрешение на запись. Все файлы в ОС Windows являются читаемыми, а то, является ли файл исполняемым, непосредственно определяется из расширения файла.
ТОП-10 популярных
Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...
БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Магнито-оптический дисковод DynaMO
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Компьютер для гурманов.«Эксимер ДМ»
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Для длинных строк, т.е. строк длиннее 255 символов, в MySQL предусмотрены типы BLOB (Binary Large Object, большой двоичный объект) и...
В дополнение к календарным типам, предназначенным для хранения даты и времени отдельно, MySQL также поддерживает гибридные типы данных DATETIME и...
Вообще, к изменению настроек сервера прибегают очень редко. В MySQL программа заранее настроена так, чтобы соответствовать самым распространенным и основным...
PHP. Операционная система
28-12-2009
<< Предыдущая статья | Следующая статья >> |
PHP. Браузер ввода-вывода. Часть Восьмая. | PHP. Операционная система. Часть Вторая. |