ГлавнаяОтзывы и пожеланияСтатьи
Функции по алфавиту:    a     b     c     d     e     f     g     h     i     j     k     l     m     n     o     p     q     r     s     t     u     v     w     x     y     z  

fopen


(PHP 3, PHP 4)

fopen - открывает файл или URL.

Описание

int fopen (string filename, string mode [, int use_include_path])

Если filename начинается с "http://" (нечувствительно к регистру), то HTTP 1.0 соединение открывается со специфицированным сервером, страница запрашивается методом HTTP GET и указатель файла возвращается в начало тела ответа.  `Host:`-header отправляется вместе с запросом, чтобы обработать виртуальные хосты на основе имён.

Начиная с PHP 4.3.0, если вы скомпилировали поддержку OpenSSL, вы можете использовать "https://" для открытия HTTP-соединения через SSL.

Обратите внимание, что указатель файла позволяет вам запрашивать только bodyтело ответа; для запрашивания шапки/header HTTP-ответа вам нужно использовать PHP 4.0.5 или новее; эти шапки будут храниться в переменной $http_response_header. Начиная с PHP 4.3.0, header-информация может быть запрошена с использованием функции file_get_wrapper_data().

HTTP-соединения являются read-only; вы не можете записывать данные или копировать файлы в HTTP-ресурс.

Версии до PHP 4.0.5 не обрабатывают HTTP-перенаправления. Поэтому директории обязаны иметь ведомые слэши.

Если filename начинается с "ftp://" (нечувствительно к регистру), открывается ftp-соединение со специфицированным сервером и возвращается указатель на запрашиваемый файл. Если сервер не поддерживает ftp пассивного режима, это не удастся сделать. Вы можете открывать файлы для чтения или записи через ftp (но не для того и другого одновременно). Если удалённый/remote файл уже существует на ftp-сервере и вы пытаетесь открыть его для записи, это не получится. Если вам нужно обновить существующие файлы по ftp, используйте ftp_connect().

Если filename это "php://stdin", "php://stdout" или "php://stderr", будет открыт соответствующий поток stdio. (Это появилось в PHP 3.0.13; до этого такие имена файлов, как "/dev/stdin" или "/dev/fd/0", должны были использоваться для доступа к stdio-потокам.)

Если filename начинается ещё с чего-нибудь, файл будет открыт из файловой системы и будет возвращён указатель на открытый файл.

Если открыть файл не удалось, эта функция возвращает FALSE.

mode может иметь значения:

  • `r` - Открыть только для чтения; поместить указатель в начало файла.

  • `r+` - Открыть для чтения и записи; поместить указатель в начало файла.

  • `w` - Открыть только для записи; поместить указатель в начало файла и усечь файл до нулевой длины. Если файл не существует, делается попытка создать его.

  • `w+` - Открыть для чтения и записи; поместить указатель в начало файла и усечь файл до нулевой длины. Если файл не существует, делается попытка создать его.

  • `a` - Открыть только для записи; поместить указатель в конец файла. Если файл не существует, делается попытка создать его.

  • `a+` - Открыть для чтения и записи; поместить указатель в конец файла. Если файл не существует, делается попытка создать его.

Примечание: mode может содержать букву `b`. Это используется только в системах, различающих двоичные и текстовые файлы (т.е. в Windows. В Unix это бесполезно). Если не нужен, он игнорируется.

Вы можете использовать необязательный третий параметр и установить в него значение "1", если хотите найти файл также и в include_path.

Пример 1. fopen()
$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 мнемонизируйте (escape) все обратные слэши в пути к файлу или используйте обычные слэши.

$fp = fopen ("c:\data\info.txt", "r");

См. также fclose(), fsockopen(), socket_set_timeout() и popen().




Другие функции на f:

fbsql_autocommit
fbsql_change_user
fbsql_commit
fbsql_connect
fbsql_create_blob
fbsql_create_clob
fbsql_create_db
fbsql_database
fbsql_data_seek
fbsql_errno
fbsql_fetch_assoc
fbsql_fetch_object
fbsql_fetch_row
fbsql_field_len
fbsql_field_name
fbsql_field_seek
fbsql_hostname
fbsql_insert_id
fbsql_list_dbs
fbsql_list_tables
fbsql_num_rows
fbsql_password
fbsql_read_clob
fbsql_result
fbsql_rollback
fbsql_select_db
fbsql_set_lob_mode
fbsql_set_transaction
fbsql_tablename
fbsql_username
fclose
fdf_create
fdf_get_status
fdf_get_value
fdf_open
fdf_save
fdf_set_encoding
fdf_set_file
fdf_set_flags
fdf_set_opt
feof
fflush
file
filectime
filegroup
fileinode
fileperms
filepro
filepro_fieldname
filepro_fieldtype
filepro_fieldwidth
filepro_retrieve
filepro_rowcount
filetype
file_get_contents
file_get_wrapper_data
flock
flush
fpassthru
fputs
fread
FrenchToJD
fribidi_log2vis
fseek
fstat
ftell
ftok
ftp_cdup
ftp_chdir
ftp_close
ftp_connect
ftp_exec
ftp_fput
ftp_get
ftp_get_option
ftp_mdtm
ftp_put
ftp_pwd
ftp_quit
ftp_rawlist
ftp_rename
func_get_args
fwrite


EXPERTGS.ru описание функций php.