fopen
(PHP 3, PHP 4 )
fopen -- Открывает файл или URL
Description
int fopen ( string filename, string mode [, int use_include_path [, resource zcontext]])
fopen() назначает именованный ресурс, указанный по имени файла, потоку. Если имя файла дано в форме "scheme://...", PHP полагает, что введён URL, и PHP попытается найти указатель протокола (так же известный как оболочка) для этой схемы. Если для этого протокола нет зарегистрированных оболочек, PHP выведит замечание, что бы помочь вам отслеживать потенциальные проблемы в вашем скрипте, и продолжит выполнение так, как будто имя файла указывает на обычный файл.
Если PHP решит, что указанное имя файла представляет собой обычный файл, он попытается открыть поток для этого файла. Файл должен быть доступен для PHP, поэтому вам нужно проверить, что бы права доступа не мешали PHP работать с файлом. Если вы включили safe_mode, или open_basedir, могут быть применены дальнейшие ограничения.
Если PHP решит, что имя фала указывает на зарегистрированный протокол, которые зарегистрирован как сетевой URL, PHP проверит директиву allow_url_fopen. Если она отключена, PHP выведит предупреждение и вызов fopen будет неудачным.
Замечание: список поддерживаемых протоколов может быть найден в приложении 1 PHP Manual.
режимы, указывающие тип доступа к требуемому потоку могут быть следующими:
'r' - открыть только для чтения; указатель перемещается в начало файла.
'r+' - открыть для чтения и записи; указатель перемещается в начало файла.
'w' - открыть только для записи; указатель перемещается в начало и файла и усекает его до нулевой длины. Если файл не существует, производится попытка создать его.
'w+' - открыть для чтения и записи; указатель помещается в начало файла и усекает его до нулевой длины. Если файл не существует, он создаётся.
'a' - открыть только для записи; указатель помещается в конец файла. Если файла не существует, он создаётся.
'a+' - открыть файл для записи и чтения; указатель помещается в конец файла. Если файла не существует, он создаётся.
Замечание: режим может содержать букву 'b'. Это полезно только на системах, которые различают двоичные и текстовые файлы. (Пример: Windows. Бесполезно в Unix). Если это ненужно, опция будет проигнорированна. Желательно включать флаг 'b' для того, что бы сделаьб ваши скрипты более переносимыми.
Третья опция use_include_path может быть установленна в '1' или TRUE, если вы хотите искать файл так же в include_path.
Четвёртая опция zcontext используется для указания настроечных параметров и обратного вызова.
Пример 1. Пример fopen()
<?php
$fp = fopen ("/home/rasmus/file.txt", "r");
$fp = fopen ("/home/rasmus/file.gif", "wb");
$fp = fopen ("http://www.example.com/", "r");
$fp = fopen ("ftp://user:password@example.com/", "w");
?>
Если вы испытываете проблемы с чтением и записью в файлы, и используете модульную версию PHP, незабудьте проверить, что файлы и директории, которые вы используете доступны серверному процессу.
На платформе Windows, будьте осторожны, отменяя обратные слеши в пути к файлу, или полузьётесь прямыми слешами.
<?php
$fp = fopen ("c:\\data\\info.txt", "r");
?>