mirror of
https://github.com/php/doc-ru.git
synced 2025-07-28 06:39:58 +00:00
227 lines
7.9 KiB
XML
227 lines
7.9 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
||
<!-- EN-Revision: ea62fb83196997032641b50fe44420305466195e Maintainer: shein Status: ready -->
|
||
<!-- Reviewed: no -->
|
||
<refentry xmlns="http://docbook.org/ns/docbook" xml:id="function.file-put-contents">
|
||
<refnamediv>
|
||
<refname>file_put_contents</refname>
|
||
<refpurpose>Записывает данные в файл</refpurpose>
|
||
</refnamediv>
|
||
|
||
<refsect1 role="description">
|
||
&reftitle.description;
|
||
<methodsynopsis>
|
||
<type class="union"><type>int</type><type>false</type></type><methodname>file_put_contents</methodname>
|
||
<methodparam><type>string</type><parameter>filename</parameter></methodparam>
|
||
<methodparam><type>mixed</type><parameter>data</parameter></methodparam>
|
||
<methodparam choice="opt"><type>int</type><parameter>flags</parameter><initializer>0</initializer></methodparam>
|
||
<methodparam choice="opt"><type class="union"><type>resource</type><type>null</type></type><parameter>context</parameter><initializer>&null;</initializer></methodparam>
|
||
</methodsynopsis>
|
||
<para>
|
||
Функция работает так же, как последовательный вызов функций
|
||
<function>fopen</function>, <function>fwrite</function>
|
||
и <function>fclose</function> для записи данных в файл.
|
||
</para>
|
||
<para>
|
||
Если путь <parameter>filename</parameter> не существует, функция создаст файл.
|
||
В противном случае она перезапишет существующий файл,
|
||
если не установлен флаг <constant>FILE_APPEND</constant>.
|
||
</para>
|
||
</refsect1>
|
||
|
||
<refsect1 role="parameters">
|
||
&reftitle.parameters;
|
||
<para>
|
||
<variablelist>
|
||
<varlistentry>
|
||
<term><parameter>filename</parameter></term>
|
||
<listitem>
|
||
<para>
|
||
Путь к файлу, в который функция будет записывать данные.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><parameter>data</parameter></term>
|
||
<listitem>
|
||
<para>
|
||
Записываемые данные. Разрешено передавать строку (<type>string</type>),
|
||
массив (<type>array</type>) или ресурс потока.
|
||
</para>
|
||
<para>
|
||
Если данные <parameter>data</parameter> — ресурс потока
|
||
(<type>stream</type>), функция скопирует оставшийся буфер потока
|
||
в файл. Это похоже на работу функции
|
||
<function>stream_copy_to_stream</function>.
|
||
</para>
|
||
<para>
|
||
Допустимо определять параметр <parameter>data</parameter>
|
||
как одномерный массив. Это будет эквивалентно вызову
|
||
<literal>file_put_contents($filename, implode('', $array))</literal>.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><parameter>flags</parameter></term>
|
||
<listitem>
|
||
<para>
|
||
В параметр <parameter>flags</parameter> разрешено передавать
|
||
произвольные комбинации следующих флагов, соединяя их бинарным
|
||
оператором ИЛИ (<literal>|</literal>).
|
||
</para>
|
||
<para>
|
||
<table>
|
||
<title>Доступные флаги</title>
|
||
<tgroup cols="2">
|
||
<thead>
|
||
<row>
|
||
<entry>Флаг</entry>
|
||
<entry>Описание</entry>
|
||
</row>
|
||
</thead>
|
||
<tbody>
|
||
<row>
|
||
<entry>
|
||
<constant>FILE_USE_INCLUDE_PATH</constant>
|
||
</entry>
|
||
<entry>
|
||
Ищет файл <parameter>filename</parameter>
|
||
во включённых каталогах.
|
||
Параграф <link linkend="ini.include-path">include_path</link>
|
||
даёт дополнительную информацию.
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<constant>FILE_APPEND</constant>
|
||
</entry>
|
||
<entry>
|
||
Функция допишет данные в конец файла вместо того, чтобы перезаписать его,
|
||
если файл <parameter>filename</parameter> уже существует.
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<constant>LOCK_EX</constant>
|
||
</entry>
|
||
<entry>
|
||
Получает эксклюзивную блокировку файла на время записи. Другими словами,
|
||
между вызовами функций <function>fopen</function> и <function>fwrite</function>
|
||
произойдёт вызов функции <function>flock</function>. Это не тождественно
|
||
вызову функции <function>fopen</function> с флагом «x».
|
||
</entry>
|
||
</row>
|
||
</tbody>
|
||
</tgroup>
|
||
</table>
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><parameter>context</parameter></term>
|
||
<listitem>
|
||
<para>
|
||
Допустимый ресурс контекста, который создан функцией
|
||
<function>stream_context_create</function>.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
</variablelist>
|
||
</para>
|
||
</refsect1>
|
||
|
||
<refsect1 role="returnvalues">
|
||
&reftitle.returnvalues;
|
||
<para>
|
||
Функция возвращает количество байтов, которые процесс записал в файл,
|
||
или &false; в случае ошибки.
|
||
</para>
|
||
&return.falseproblem;
|
||
</refsect1>
|
||
|
||
<refsect1 role="examples">
|
||
&reftitle.examples;
|
||
<para>
|
||
<example>
|
||
<title>Пример простого использования</title>
|
||
<programlisting role="php">
|
||
<![CDATA[
|
||
<?php
|
||
|
||
$file = 'people.txt';
|
||
|
||
// Открываем файл, чтобы получить существующее содержимое
|
||
$current = file_get_contents($file);
|
||
|
||
// Добавляем нового человека в файл
|
||
$current .= "Джон Смит\n";
|
||
|
||
// Записываем содержимое обратно в файл
|
||
file_put_contents($file, $current);
|
||
|
||
?>
|
||
]]>
|
||
</programlisting>
|
||
</example>
|
||
<example>
|
||
<title>Использование флагов</title>
|
||
<programlisting role="php">
|
||
<![CDATA[
|
||
<?php
|
||
|
||
$file = 'people.txt';
|
||
|
||
// Новый человек, которого нужно добавить в файл
|
||
$person = "Джон Смит\n";
|
||
|
||
// Записываем содержимое в файл
|
||
// с флагом FILE_APPEND, чтобы дописать содержимое в конец файла,
|
||
// и флагом LOCK_EX, чтобы никто другой не мог записывать данные в файл в то же самое время
|
||
file_put_contents($file, $person, FILE_APPEND | LOCK_EX);
|
||
|
||
?>
|
||
]]>
|
||
</programlisting>
|
||
</example>
|
||
</para>
|
||
</refsect1>
|
||
|
||
<refsect1 role="notes">
|
||
&reftitle.notes;
|
||
¬e.bin-safe;
|
||
&tip.fopen-wrapper;
|
||
</refsect1>
|
||
|
||
<refsect1 role="seealso">
|
||
&reftitle.seealso;
|
||
<para>
|
||
<simplelist>
|
||
<member><function>fopen</function></member>
|
||
<member><function>fwrite</function></member>
|
||
<member><function>file_get_contents</function></member>
|
||
<member><function>stream_context_create</function></member>
|
||
</simplelist>
|
||
</para>
|
||
</refsect1>
|
||
|
||
</refentry>
|
||
<!-- Keep this comment at the end of the file
|
||
Local variables:
|
||
mode: sgml
|
||
sgml-omittag:t
|
||
sgml-shorttag:t
|
||
sgml-minimize-attributes:nil
|
||
sgml-always-quote-attributes:t
|
||
sgml-indent-step:1
|
||
sgml-indent-data:t
|
||
indent-tabs-mode:nil
|
||
sgml-parent-document:nil
|
||
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
|
||
sgml-exposed-tags:nil
|
||
sgml-local-catalogs:nil
|
||
sgml-local-ecat-files:nil
|
||
End:
|
||
vim600: syn=xml fen fdm=syntax fdl=2 si
|
||
vim: et tw=78 syn=sgml
|
||
vi: ts=1 sw=1
|
||
-->
|