Чтение файла в переменную php

Функции для работы с файловой системой

mkdir — пытается создать папку по указанному пути.

rmdir — удаляет папку по указанному пути.

unlink — удаляет файл по указанному в параметре пути.

copy

copy — эта функция берет уже существующий файл и копирует его по новому адресу.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

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

Создадим в нашей папке с уроком файл index.php и текстовый файл test.txt и создадим папку, которую назовем folder.

С помощью функции copy скопируем файл test.txt в папку folder.
где:
‘test.txt’ — путь к файлу, который мы хотим копировать (первый параметр)- в нашем случае он находится в этой же папке, где находится индексный файл index.php.
folder/ — куда будем копировать
file.txt — под каким именем будем копировать (можно задавать любое имя).

Запустим браузер и обновим страницу — в папке folder появился текстовый документ file.txt с тем же содержимым, что и в test.txt.

file_exists

file_exists — проверяет наличие папки или файла. Возвращает TRUE , если файл или папка существует, иначе возвращает FALSE .
Параметром принимает путь к файлу или каталогу , в нашем случае — folder/file.txt
— если файл folder/file.txt существует, то выведем: ‘Файл существует’ ,
— иначе выведем: ‘Такого файла нет’ .

if ( file_exists ( ‘folder/file.txt’ )) echo ‘Файл существует’ ;
else echo ‘Такого файла нет’ ;
?>
— после обновления страницы увидим: Файл существует

Если поменяем значение, например folder/file2.txt , то выведет: Такого файла нет .
Если укажем folder , то выведет: Файл существует .

file_get_contents

file_get_contents — позволяет прочитать содержимое файла

В переменную $file считываем с помощью функции file_get_contents содержимое файла test.txt
В качестве параметра передаем путь к файлу ( ‘test.txt’ ). Переменную $file сразу выведем на экран.

Допишем файл test.txt:

Это файл test.txt
строка 2
строка 3
строка 4
строка 5

echo $file = file_get_contents ( ‘test.txt’ );

// для многострочного текста: заменяем переносы строк на тэги
echo nl2br ( $file = file_get_contents ( ‘test.txt’ ));

?>
выведет:
Это файл test.txt строка 2 строка 3 строка 4 строка 5
// для многострочного текста
Это файл test.txt
строка 2
строка 3
строка 4
строка 5

Кроме чтения файлов данная функция может еще читать содержимое сайтов . Здесь в качестве параметра передаем путь к сайту

$file = file_get_contents ( ‘https://php.net/’ ); // считываем контент в файл
echo $file ; // увидим страничку http://php.net/
echo htmlspecialchars ( $file ); // увидим код странички
?>

file_put_contents

file_put_contents — позволяет записать что-то в файл (php.net)

Функция возвращает integer — количество записанных байт в файл, или FALSE в случае ошибки.
Первый обязательный параметр — это путь к файлу , который мы будем записывать.
Второй обязательный параметр — это данные , которые мы будем записывать.
Запишем считанный контент в файл.
‘folder/file.txt’ — путь к файлу, в который запишем данные, хранящиеся в переменной $file .

Читайте также:  File add contents php

// читаем содержимое страницы в сети
$file = file_get_contents ( ‘https://php.net/’ );
// записываем считанные данные в файл file.txt
file_put_contents ( ‘folder/file.txt’ , $file );
?>
— выведет весь HTML-код данной страницы.

Прочитаем еще одну страницу в переменную $file2 и запишем также еще и ее.

// читаем содержимое страницы в сети
$file = file_get_contents ( ‘https://php.net/’ );

// читаем содержимое второй страницы
$file2 = file_get_contents ( ‘https://www.php.net/manual/ru/function.file-put-contents.php’ );

// записываем считанные данные в файл file.txt
file_put_contents ( ‘folder/file.txt’ , $file );

// запишем в этот же файл содержимое переменной $file2
file_put_contents ( ‘folder/file.txt’ , $file2 );
?>
— выведет весь HTML-код второй страницы ($file2).

То есть, мы сначала записали в текстовый документ содержимое переменной $file , а затем мы перезаписали этот документ, записав в него содержимое переменной $file2 .

Чтобы дописать что-то в файл, не затирая при этом то, что там было до того, нужно воспользоваться третьим опциональным параметром flags .
Выбираем одну из трех констант — FILE_APPEND — эта константа позволяет записать данные в конец файла, вместо того, чтобы его перезаписать.
Дополнительно можно еще использовать константу — LOCK_EX — она устанавливает эксклюзивную блокировку на файл на время записи.

// читаем содержимое страницы в сети
$file = file_get_contents ( ‘https://php.net/’ );

// читаем содержимое второй страницы
$file2 = file_get_contents ( ‘https://www.php.net/manual/ru/function.file-put-contents.php’ );

// записываем считанные данные в файл file.txt
file_put_contents ( ‘folder/file.txt’ , $file , FILE_APPEND );

// запишем в этот же файл содержимое переменной $file2
file_put_contents ( ‘folder/file.txt’ , $file2 , FILE_APPEND );

?>
— выведет весь HTML-код первой и второй страниц.

file

file — читает содержимое файла и помещает его в массив, то есть каждая строка будет элементом массива . Применяется для файлов, где есть форматированные данные, где в каждой строке содержится свой набор данных

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

Запишем в текстовый файл test.txt следующее:

Это файл test.txt|email
строка 2|email
строка 3|email
строка 4|email
строка 5|email

В индексном файле запишем:

$file = file ( ‘test.txt’ );
echo ‘

' ; 
print_r ( $file );
echo '

‘ ;
?>
— выведет:
Array
(
[0] => Это файл test.txt|email

Чтобы убрать пустые строки между элементами массива, можно воспользоваться необязательным параметром — flags .

В этом параметре нас интересуют две константы:
FILE_IGNORE_NEW_LINES — не добавляет новую строку в конце каждого элемента массива
FILE_SKIP_EMPTY_LINES — пропускает пустые строки

$file = file ( ‘test.txt’ , FILE_IGNORE_NEW_LINES );
echo ‘< pre>‘ ;
print_r ( $file );
echo ‘< /pre>‘ ;
?>
— выведет:
Array
(
[0] => Это файл test.txt|email
[1] => строка 2|email
[2] => строка 3|email
[3] => строка 4|email
[4] => строка 5|email
)

В файл test.txt добавим пустую строку:

Это файл test.txt|email
строка 2|email
. // Здесь пустая строка
строка 3|email
строка 4|email
строка 5|email

В индексном файле запишем:

Читайте также:  Структура html документа дескрипторы

$file = file ( ‘test.txt’ , FILE_IGNORE_NEW_LINES );
echo ‘< pre>‘ ;
print_r ( $file );
echo ‘< /pre>‘ ;
?>
— выведет:
Array
(
[0] => Это файл test.txt|email
[1] => строка 2|email
[2] =>
[3] => строка 3|email
[4] => строка 4|email
[5] => строка 5|email
)

Используем еще одну константу FILE_SKIP_EMPTY_LINES , константа добавляется через разделитель ( | ).

$file = file ( ‘test.txt’ , FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES );
echo ‘< pre>‘ ;
print_r ( $file );
echo ‘< /pre>‘ ;
?>
— выведет:
Array
(
[0] => Это файл test.txt|email
[1] => строка 2|email
[2] => строка 3|email
[3] => строка 4|email
[4] => строка 5|email
)

— пустых элементов массива теперь нет.

is_dir

is_dir — эта функция проверяет, является ли имя файла директорией.

Параметром принимает путь к файлу . Возвращает TRUE , если файл существует и является папкой, иначе возвращается FALSE .

Если is_dir(‘folder’) вернет TRUE , то это — каталог (папка), иначе — это что-то другое.

if ( is_dir ( ‘folder’ )) echo ‘Это каталог’ ;
else echo ‘Это не каталог’ ;
?>
— выведет: Это каталог

Как в Windows, так и в Unix пути можно указывать в полном и относительном виде . В относительном виде путь может содержать специальные управляющие символы » . » ( точка ) и » .. » ( две точки ). Точка указывает на текущую папку относительно файла index.php (В данном случае — папка с уроком), а две точки — указатель на папку уровнем выше (phplessons).

if ( is_dir ( ‘..’ )) echo ‘Это каталог’ ;
else echo ‘Это не каталог’ ;
?>
— выведет: Это каталог

is_file

is_file — проверяет, является ли файл обычным файлом и существует ли он вообще по указанному пути.

Параметром принимает путь к файлу . Возвращает TRUE , если файл существует и является обычным файлом, иначе возвращает FALSE .

if ( is_file ( ‘test.txt’ )) echo ‘Это файл’ ;
else echo ‘Это не файл’ ;
?>
— выведет: Это файл

move_uploaded_file

move_uploaded_file — эта функция перемещает загруженный по указанному пути файл, по новому пути.

Первый параметр — путь к загруженному файлу ( $filename ).
Второй параметр — путь, по которому необходимо переместить файл ( $destination ).

move_uploaded_file ( $filename , $destination );

rename

rename — переименовывает файл или директорию, в понимании операционной системы — перенести его куда нибудь.

Первый параметр — старое имя ( $oldname ).
Второй параметр — новое имя ( $newname ).

В индексном файле запишем: rename(‘test.txt’, ‘folder/file2.txt’) ; где
— ‘test.txt’ — старое имя (путь) файла,
— ‘folder/file2.txt’ — новое имя (путь) файла

rename ( ‘test.txt’ , ‘folder/file2.txt’ );
?>
В папке folder появится файл file2.txt — (файл переименован и перемещен)

php21.png

mkdir

mkdir — пытается создать папку по указанному пути.

Первый параметр — указанный путь для создания папки ( $pathname ).

Второй параметр — по умолчанию для папки устанавливаются все права — ( $mode = 0777 ).

Третий параметр — разрешает создание вложенных директорий , указанных в pathname ( $recursive ).

mkdir ( $pathname , $mode = 0777 , $recursive = FALSE );

Создадим вложенную структуру: папка 1 , в ней папка 2 и в папке 2 — папка 3 .

Для этого указываем параметр с правами — 0777 , и выставим третий параметр в true .

Читайте также:  Python графический интерфейс linux

mkdir ( ‘1/2/3’ , 0777 , true );
?>
После обновления страницы получим желаемую структуру.

rmdir

rmdir — удаляет папку по указанному пути.

rmdir ( ‘1/2/3’ ); // удалит папку 3
rmdir ( ‘1/2’ ); // удалит папку 2
rmdir ( ‘1’ ); // удалит папку 1
?>

unlink — удаляет файл по указанному в параметре пути.

unlink ( ‘folder/file.txt’ ); // удалит файл file.txt из папки folder
?>

Источник

PHP file_get_contents

Summary: in this tutorial, you will learn how to use the PHP file_get_contents() function to read the entire file into a string.

Introduction to the PHP file_get_contents() function

The file_get_contents() function reads the entire file into a string. Here’s the syntax of the file_get_contents() function:

file_get_contents ( string $filename , bool $use_include_path = false , resource $context = ? , int $offset = 0 , int $maxlen = ? ) : string|falseCode language: PHP (php)

The file_get_contents( ) function has the following parameters:

  • $filename is the name of the file to read.
  • $use_include_path if you set it to true, the function will also search for the file in the include path.
  • $context specifies a valid context resource or null if don’t use a custom context.
  • $offset is the offset where the function starts reading on the original stream. If it is negative, the offset counts from the end of the stream.
  • $maxlen specifies the maximum length of data to read. By default, the function reads data till the end of the file.

The file_get_contents() returns the file contents on success or false on failure.

PHP file_get_contents() function examples

Let’s take some examples of using the file_get_contents() function.

1) Using the file_get_contents() function to download a webpage example

The following example shows how to use the file_get_contents() function to download an entire webpage into a string:

 $html = file_get_contents('https://www.php.net/'); echo $html;Code language: HTML, XML (xml)

2) Using the file_get_contents() function to read an entire file into a string example

The following example uses the file_get_contents() to read the data from the readme.txt into a string:

 $filename = 'readme1.txt'; if (!is_readable($filename)) < die('File does not exist or is not readable'); > echo file_get_contents($filename);Code language: HTML, XML (xml)
  • First, throw an exception if the file exists or readable using the is_readable() function.
  • Second, read the entire file into a string and show its contents.

3) Using the file_get_contents() function to read a part of a file into a string

The following example uses the file_get_contents() function to read 20 characters starting from the 5th character in the readme.txt file:

 $filename = 'readme.txt'; if (!is_readable($filename)) < die('File does not exist or is not readable'); > echo file_get_contents($filename, null, null, 10, 20);Code language: HTML, XML (xml)

In PHP 8, you can use the name arguments when calling the file_get_contents() function as follows:

$content = file_get_contents( $filename = $filename, $offset = 5, $maxlen = 20 );Code language: PHP (php)

Summary

Источник

Оцените статью