Php ссылка открывает файл

fopen

fopen () связывает именованный ресурс, указанный в filename , с потоком.

Parameters

Если filename имеет форму «scheme: // . », предполагается, что это URL-адрес, и PHP будет искать обработчик протокола (также известный как оболочка) для этой схемы. Если никакие оболочки для этого протокола не зарегистрированы, PHP выдаст уведомление, чтобы помочь вам отслеживать потенциальные проблемы в вашем скрипте, а затем продолжит работу, как если бы filename указывает на обычный файл.

Если PHP решил, что filename указывает на локальный файл, он попытается открыть поток для этого файла. Файл должен быть доступен для PHP, поэтому вам необходимо убедиться, что разрешения на доступ к файлу разрешают этот доступ. Если вы включили open_basedir, могут применяться дополнительные ограничения.

Если PHP решил, что filename определяет зарегистрированный протокол и этот протокол зарегистрирован как сетевой URL-адрес, PHP проверит, включен ли параметр allow_url_fopen . Если он выключен, PHP выдаст предупреждение и вызов fopen завершится ошибкой.

Note:

Список поддерживаемых протоколов можно найти в разделе «Поддерживаемые протоколы и оболочки» . Некоторые протоколы (также называемые wrappers ) поддерживают параметры context и / или php.ini . Обратитесь к конкретной странице используемого протокола для получения списка опций, которые можно установить. (например, значение user_agent в php.ini , используемое оболочкой http ).

На платформе Windows будьте осторожны,чтобы избежать обратных слэшей,используемых в пути к файлу,или используйте прямые косые черты.

 $handle = fopen("c:\\folder\\resource.txt", "r"); ?>

Параметр mode указывает тип требуемого доступа к потоку. Это может быть одно из следующего:

Список возможных режимов для fopen () с использованием mode
mode Description
‘r’ Открыт только для чтения;поместите указатель на файл в начало файла.
‘r+’ Открыть для чтения и записи;поместить указатель на файл в начало файла.
‘w’ Открыть только для записи;поместить указатель на файл в начало файла и усечь файл до нулевой длины.Если файл не существует,попробуйте его создать.
‘w+’ Открыт для чтения и письма; в противном случае он ведет себя так же, как ‘w’ .
‘a’ Открыт только для записи; поместите указатель файла в конец файла. Если файл не существует, попытайтесь создать его. В этом режиме fseek () не действует, записи всегда добавляются.
‘a+’ Открыт для чтения и письма; поместите указатель файла в конец файла. Если файл не существует, попытайтесь создать его. В этом режиме fseek () влияет только на позицию чтения, записи всегда добавляются.
‘x’ Создавать и открывать только для записи; поместите указатель файла в начало файла. Если файл уже существует, вызов fopen () завершится неудачно, вернет false и выдаст ошибку уровня E_WARNING . Если файл не существует, попробуйте его создать. Это эквивалентно O_EXCL|O_CREAT флагов O_EXCL | O_CREAT для базового системного вызова open(2) .
‘x+’ Создавать и открывать для чтения и письма; в противном случае он ведет себя так же, как ‘x’ .
‘c’ Открыть файл только для записи. Если файл не существует, он создается. Если он существует, он не усекается (в отличие от ‘w’ ), и вызов этой функции не завершается неудачно (как в случае с ‘x’ ). Указатель файла располагается в начале файла. Это может быть полезно, если желательно получить рекомендательную блокировку (см. Flock () ) перед попыткой изменения файла, поскольку использование ‘w’ могло бы обрезать файл до того, как блокировка была получена (если требуется усечение, ftruncate () может быть используется после запроса блокировки).
‘c+’ Откройте файл для чтения и записи; в противном случае он ведет себя так же, как ‘c’ .
‘e’ Установите флаг close-on-exec на дескрипторе открытого файла.Доступно только в PHP,скомпилированном на системах,соответствующих POSIX.1-2008.

Note:

В разных семействах операционных систем используются разные обозначения окончания строк. Когда вы пишете текстовый файл и хотите вставить разрыв строки, вам необходимо использовать правильный (е) символ (символы) окончания строки для вашей операционной системы. Системы на основе Unix используют \n в качестве символа окончания строки, системы на базе Windows используют \r\n в качестве символов окончания строки, а системы на базе Macintosh (Mac OS Classic) используют \r в качестве символа завершения строки.

Если при записи файлов вы используете символы,заканчивающиеся не на ту строку,вы можете обнаружить,что другие приложения,открывающие эти файлы,будут «выглядеть смешно».

Windows предлагает флаг перевода текстового режима ( ‘t’ ), который будет прозрачно переводить \n в \r\n при работе с файлом. Напротив, вы также можете использовать ‘b’ для принудительного использования двоичного режима, который не будет преобразовывать ваши данные. Чтобы использовать эти флаги, укажите либо ‘b’ либо ‘t’ в качестве последнего символа параметра mode .

Режим перевода по умолчанию — ‘b’ . Вы можете использовать режим ‘t’ , если вы работаете с текстовыми файлами и используете \n для обозначения концов строк в сценарии, но ожидаете, что ваши файлы будут доступны для чтения с помощью таких приложений, как старые версии блокнота. Во всех остальных случаях вам следует использовать букву ‘b’ .

Если вы укажете флаг ‘t’ при работе с двоичными файлами, у вас могут возникнуть странные проблемы с вашими данными, включая битые файлы изображений и странные проблемы с символами \r\n .

Note:

Для переносимости также настоятельно рекомендуется переписать код, который использует или полагается на режим ‘t’ чтобы вместо него использовались правильные окончания строк и режим ‘b’ .

Примечание . Этот mode игнорируется для обработчиков потоков php://output , php://input , php://stdin , php://stdout , php://stderr и php://fd .

Необязательный третий параметр use_include_path может иметь значение «1» или true , если вы также хотите искать файл в include_path .

Return Values

Возвращает ресурс указателя файла в случае успеха или false в случае неудачи

Источник

fopen

fopen() закрепляет именованный ресурс, указанный в аргументе filename , за потоком.

Список параметров

Если filename передан в форме «scheme://. «, он считается URL’ом и PHP проведёт поиск обработчика протокола (также известного как «обертка») для этой схемы. Если ни одна обёртка не закреплена за протоколом, PHP выдаст замечание, чтобы помочь вам отследить потенциальную проблему в вашем скрипте и затем продолжит выполнение, как если бы filename указывал на обыкновенный файл.

Если PHP установлено, что filename указывает на локальный файл, тогда выполняется попытка открыть поток к этому файлу. Файл должен быть доступен PHP, так что вам следует убедиться, что права доступа на файл это разрешают. Если вы включили open_basedir, то накладываются дальнейшие ограничения.

Если PHP установил, что filename указывает на зарегистрированный протокол и этот протокол зарегистрирован как сетевой URL, PHP выполняет проверку состояния директивы allow_url_fopen. Если она выключена, PHP выдаст предупреждение и вызов fopen закончится неудачей.

Замечание:

Список поддерживаемых протоколов доступен в разделе Поддерживаемые протоколы и обертки. Некоторые протоколы ( обертки ) поддерживают контекст и/или опции php.ini . Обратитесь к соответствующей странице с описанием используемого протокола для получения списка опций, которые могут быть установлены. (например, значение php.ini user_agent используется оберткой http ).

На платформе Windows, необходимо экранировать все обратные слеши в пути к файлу или использовать прямые слеши.

Параметр mode указывает тип доступа, который вы запрашиваете у потока. Он может быть одним из следующих вариантов:

Список возможных режимов для fopen() , используя mode
mode Описание
‘r’ Открывает файл только для чтения; помещает указатель в начало файла.
‘r+’ Открывает файл для чтения и записи; помещает указатель в начало файла.
‘w’ Открывает файл только для записи; помещает указатель в начало файла и обрезает файл до нулевой длины. Если файл не существует — пробует его создать.
‘w+’ Открывает файл для чтения и записи; помещает указатель в начало файла и обрезает файл до нулевой длины. Если файл не существует — пытается его создать.
‘a’ Открывает файл только для записи; помещает указатель в конец файла. Если файл не существует — пытается его создать. В данном режиме функция fseek() не применима, записи всегда добавляются в конец.
‘a+’ Открывает файл для чтения и записи; помещает указатель в конец файла. Если файл не существует — пытается его создать. В данном режиме функция fseek() влияет только на позицию чтения, записи всегда добавляются в конец.
‘x’ Создаёт и открывает только для записи; помещает указатель в начало файла. Если файл уже существует, вызов fopen() закончится неудачей, вернёт false и выдаст ошибку уровня E_WARNING . Если файл не существует, попытается его создать. Это эквивалентно указанию флагов O_EXCL|O_CREAT для внутреннего системного вызова open(2) .
‘x+’ Создаёт и открывает для чтения и записи; в остальном имеет то же поведение, что и ‘x’ .
‘c’ Открывает файл только для записи. Если файл не существует, то он создается. Если же файл существует, то он не обрезается (в отличие от ‘w’ ), и вызов к этой функции не вызывает ошибку (также как и в случае с ‘x’ ). Указатель на файл будет установлен на начало файла. Это может быть полезно при желании заблокировать файл (см. flock() ) перед изменением, так как использование ‘w’ может обрезать файл еще до того как была получена блокировка (если вы желаете обрезать файл, можно использовать функцию ftruncate() после запроса на блокировку).
‘c+’ Открывает файл для чтения и записи; в остальном имеет то же поведение, что и ‘c’ .
‘e’ Установить флаг close-on-exec (закрыть при запуске) на открытый файловый дескриптор. Доступно только в PHP скомпилированном на системах поддерживающих POSIX.1-2008.

Замечание:

Разные семейства операционных систем имеют разные соглашения относительно окончания строк. Когда вы пишете текст и хотите вставить разрыв строки, вы должны использовать правильные символы (или символ) для вашей операционной системы. Системы семейства Unix используют \n в качестве символа конца строки, системы семейства Windows используют \r\n в качестве символов окончания строки и системы семейства Macintosh (Mac OS Classic) используют \r в качестве символа конца строки.

Если вы используете неверный символ конца строки при редактировании файлов, вы можете обнаружить, что при открытии эти файлы «странно выглядят».

Windows предлагает флаг режима текстовой трансляции ( ‘t’ ), который автоматически переведёт \n в \r\n во время работы с файлом. И наоборот — вы также можете использовать ‘b’ , чтобы принудительно включить бинарный режим, в котором ваши данные не будут преобразовываться. Чтобы использовать эти режимы, укажите ‘b’ или ‘t’ последней буквой параметра mode .

Флагом трансляции по умолчанию является ‘b’ . Вы можете использовать режим ‘t’ , если работаете с текстовыми файлами и используете \n для обозначения конца строки в вашем скрипте, но при этом предполагаете, что ваши файлы будут использоваться в таких приложениях, как «Блокнот» (в устаревших версиях). Во всех остальных случаях используйте флаг ‘b’ .

Если вы укажете флаг ‘t’ во время работы с бинарными файлами, вы можете столкнуться со странными проблемами с вашими данными, включая поврежденные файлы изображений и проблемы с символами \r\n .

Замечание:

Опять же из соображений портируемости крайне рекомендуется переписать старый код, который полагается на режим ‘t’ , чтобы вместо этого он использовал правильные концы строк и режим ‘b’ .

Необязательный третий параметр use_include_path может быть установлен в ‘1’ или true , если вы также хотите провести поиск файла в include_path.

Замечание: Поддержка контекста была добавлена в PHP 5.0.0. Для описания контекстов смотрите раздел Потоки.

Возвращаемые значения

Возвращает указатель на файл в случае успешной работы, или false в случае возникновения ошибки

Источник

Читайте также:  Java опера для nokia
Оцените статью