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 = 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

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

$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 .

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. Копирование, перемещение, переименование

Работа с файлами в php. Копирование, перемещение, переименование

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

Работа с файлами в php. Копирование

Для копирования файлов в php есть специальная функция — copy:

// создание копии файла $file = ‘folder_1/1.txt’; $new_file = ‘folder_1/2.txt’; if (copy($file, $newfile)) < echo "Файл успешно скопирован!"; >else

Работа с файлами в php. Переименование

Переименовывать файлы в php тоже, очень просто, для этих целей существует функция — rename:

// переименование файла $file = ‘folder_1/1.txt’; $new_name = ‘folder_1/2.txt’; if (rename($file, $new_name)) < echo "Файл успешно переименован!"; >else

Работа с файлами в php. Перемещение

Для перемещения файлов, я не нашел ни одной стандартной функции, но для этих целей хорошо подходит функция — rename, которую мы использовали при переименовании файла.

// перемещение файла $file = ‘folder_1/1.txt’; $new_name = ‘folder_2/1.txt’; if (rename($file, $new_name)) < echo "Файл успешно перемещен!"; >else

Чтобы переименовать файл, можно воспользоваться и другим способом — сделать копию файла, а потом удалить оригинал:

// перемещение файла $file = 'folder_1/1.txt'; $new_file = 'folder_2/1.txt'; copy($file, $new_file); // делаем копию unlink($file); // удаляем оригинал

Источник

Читайте также:  Multi dimension array java
Оцените статью