Работа с файлами
Primary tabs
<?php
error_reporting(E_ALL);
ini_set ('display_erorrs','on');
?>
если в папке выше
<?php
echo file_get_contents('../dir/test.txt')
?>
можно поставить папку ddd
<?php
echo file_get_contents('ddd/dir/../test.txt')
?>
выйти наружу и зайти в папк. абсолютный путь. Это путь относительно корня.
суперглобальнй массив показывает путь к
<?php echo file_get_contents($_SERVER ['DOCUMENT_ROOT'], '/folder/test') echo $_SERVER ['DOCUMENT_ROOT'] ?>
самые удобные функции , чтобы не привязывать к абсолютному и относительному пути
<?php echo $_SERVER ['DOCUMENT_ROOT'] echo _FILE_; // она выводит путь к файлу echo _DIR_; ?>
Создайте файл test.txt и запишите в него текст 'test'. Пусть изначально файла с таким именем не существует.
Создаём файл в корневом каталоге с именем test.txt и напишем строчку "test". Пишем скрипт ниже и запускаем в консоле или браузере, выведится содерживмое файла "test".
<?php
echo file_get_contents('test.txt');
?>
Создайте файл new.txt с пустым текстом. Пусть изначально файла с таким именем не существует.
<?php
file_put_contents("new.txt","!");
?>
Дан массив с именами файлов ['1.txt', '2.txt', '3.txt']. Переберите его циклом и создайте файлы с такими именами и пустым текстом.
<?php
$a = ['1.txt','2.txt','3.txt'];
for ($i=0;$i<3;$i++)
{
file_put_contents($a[$i],$i );
}
?>
Записываем данные массива в переменную и модифицируем и обратно
<?php
$t = file_get_contents('1.txt');
echo file_put_contents("1.txt",$t."!");
?>
Пусть в корне вашего сайта лежит файл test.txt, в котором записано некоторое число. Откройте этот файл, возведите число в квадрат и запишите обратно в файл.
<?php
$t = file_get_contents('test.txt');
echo $t ,"<BR>";
$b=pow($t,2);
echo "<BR>",$b,"<BR>";
file_put_contents("test.txt",$b);
?>
Пусть в корне вашего сайта лежит файл count.txt. Изначально в нем записано число 0. Сделайте так, чтобы при обновлении страницы наш скрипт каждый раз увеличивал это число на 1. То есть у нас получится счетчик обновления страницы в виде файла.
<?php
$t = file_get_contents('count.txt');
echo $t+1;
file_put_contents("count.txt",$t=$t+1);
?>
Пусть в корне вашего сайта лежат файлы 1.txt, 2.txt и 3.txt. Вручную сделайте массив с именами этих файлов. Переберите его циклом, прочитайте содержимое каждого из файлов, слейте его в одну строку и запишите в новый файл new.txt. Изначально этого файла не должно быть.
<?php
$t="";
$a = ['1.txt','2.txt','3.txt'];
for ($i=0;$i<3;$i++)
{
$t.= file_get_contents($a[$i]);
file_put_contents("new.txt",$t);
}
?>
Пусть в корне вашего сайта лежат файлы 1.txt, 2.txt и 3.txt. Вручную сделайте массив с именами этих файлов. Переберите его циклом и в текст каждого файла в конец запишите восклицательный знак.
<?php
$t="";
$a = ['1.txt','2.txt','3.txt'];
for ($i=0;$i<3;$i++)
{
$t = file_get_contents($a[$i]);
file_put_contents($a[$i],$t."!");
}
?>
Перемеинование файла в корне вашего сайта
<?php
rename ('1.txt','q.txt');
?>
Пусть в корне вашего сайта лежит файл test.txt. Пусть также в корне вашего сайта лежит папка dir. Переместите файл в эту папку.
<?php
rename ('test.txt','dir/q.txt');
?>
Пусть в корне вашего сайта лежит папка dir1, а в ней файл test.txt. Пусть также в корне вашего сайта лежит папка dir2. Переместите файл в эту папку.
<?php
rename ('dir1/test.txt','dir2/test.txt');
?>
Пусть в корне вашего сайта лежит файл test.txt. Скопируйте его в файл copy.txt.
<?php
copy ('count.txt', 's.txt');
?>
Пусть в корне вашего сайта лежит файл test.txt. Пусть также в корне вашего сайта лежит папка dir. Скопируйте файл test.txt в папку dir. Копию файла также назовите test.txt.
<?php
copy ('s.txt', 'dir1/s.txt');
?>
Пусть в корне вашего сайта лежит файл count.txt Удалите его.
<?php
unlink('count.txt');
?>
Пусть в корне вашего сайта лежат файлы 1.txt, 2.txt и 3.txt. Вручную сделайте массив с именами этих файлов. Переберите его циклом и удалите все эти файлы.
<?php
$a = ['1.txt','2.txt','3.txt'];
for ($i=0;$i<3;$i++)
{
unlink($a[$i]);
}
?>
Проверьте, лежит ли в корне вашего сайта файл test.txt.
<?php
var_dump(file_exists('test.txt')) ;
?>
Проверьте, лежит ли в корне вашего сайта файл test.txt. Если да - удалите его, если нет - создайте.
<?php
if (file_exists('test.txt')) {
unlink('test.txt');
}
else {
file_put_contents('test.txt'," ");
}
?>
Дан массив с именами файлов ['1.txt', '2.txt', '3.txt']. Переберите его циклом и проверьте каждый файл на существование. Выведите на экран имя каждого файла и рядом текст "существует" или "не существует".
<?php
$a = ['1.txt','2.txt','3.txt'];
for ($i=0;$i<3;$i++)
{
if (file_exists($a[$i])) {
echo $a[$i]," - exist";
}
else {
echo $a[$i]," - no exist";
}
}
?>
<?php
error_reporting(E_ALL);
ini_set ('display_erorrs','on');
?>Определение размера файла
Пусть в корне вашего сайта лежит файл test.txt. Узнайте его размер, выведите на экран.
Модифицируйте предыдущую задачу так, чтобы размер файла выводился в килобайтах.
Положите в корень вашего сайта какую-нибудь картинку размером более мегабайта. Узнайте размер этого файла и переведите его в мегабайты.
Положите в корень вашего сайта какой-нибудь фильм размером более гигабайта. Узнайте размер этого файла и переведите его в гигабайты.
var_dump(filesize('1.avi')/1024/1024/1024);
Работа с переносом строки и PHP_EOL
Дан файл test.txt. Прочитайте его текст, получите массив его строк.
<?php
$text = file_get_contents ('test.txt');
$arr = explode ("\n", $text);
var_dump ($arr);
?>Дан файл test.txt. В нем на каждой строке написано какое-то число. Найдите сумму этих чисел и запишите ее в файл sum.txt.
<?php
$c=0;
$text = file_get_contents ('test.txt');
$arr = explode ("\n", $text);
// var_dump ($arr);
// echo $arr [1];
// var_dump ($arr);
for ($i=0;$i<8;$i++) {
$c =$c+ $arr[$i];
}
file_put_contents ('test1.txt',$c);
?>Дан массив. Запишите элементы этого массива в файл test.txt так, чтобы каждый элемент начинался с новой строки.
\r\n
<?php
$c='';
$arr=["a", "b","c"];
for ($i=0;$i<3;$i++) {
$c=$c.$arr[$i]."\n";
?> }
file_put_contents ('test1.txt', $c);
<?php
$arr = file ('test1.txt');
echo $arr[0];
echo $arr[1];
echo $arr[2];
echo $arr[3];
//var_dump(file ('test1.txt'));
?>Дан файл test.txt. В нем на каждой строке написано какое-то число. С помощью функции file найдите сумму этих чисел и выведете ее на экран.
<?php
$sum=0;
$arr = file ('test1.txt',FILE_IGNORE_NEW_LINES);
for ($i=0;$i<4;$i++) {
$sum = $arr[$i]+$sum;
//echo $arr[$i]."<BR>";
}
echo $sum;
?>Дан файл test.txt. В нем на каждой строке написано какое-то число. С помощью функции file найдите сумму этих чисел и запишите эту сумму обратно в конец файла, с новой строки.
<?php
$sum=0;
$e='';
$arr = file ('test1.txt',FILE_IGNORE_NEW_LINES);
for ($i=0;$i<8;$i++) {
$sum = $arr[$i]+$sum;
$e=$e.$arr[$i]."\n";
//echo $arr[$i]."<BR>";
}
file_put_contents ('test2.txt', $e."\n".$sum);
?>Создайте в корне вашего сайта папку с названием dir.
<?php mkdir( dir); ?>
Дан массив со строками. Создайте в корне вашего сайта папки, названиями которых служат элементы этого массива
<?php
$arr = file ('s.txt',FILE_IGNORE_NEW_LINES);
for ($i=0;$i<8;$i++) {
mkdir( $arr[$i] );
}
?>Создайте в корне вашего сайта папку с названием test. Затем создайте в этой папке 3 файла: 1.txt, 2.txt, 3.txt.
(int), (integer) — приведение к integer.
(bool), (boolean) — приведение к boolean.
(float), (double), (real) — приведение к float.
(string) — приведение к string.
(array) — приведение к array.
(object) — приведение к object.
(unset) — приведение к NULL.
<?php
$i=1;
$c= $i.'text.txt';
echo $c,"<BR>";
echo gettype ($c);
$b='1text.txt';
echo gettype ($c);
//echo $b,"<BR>";
if ($c===$b) {
echo "true","<BR>";
echo $c,"<BR>";
echo $b,"<BR>";
}
else {
echo "else";
}
mkdir('test');
for ($i=0;$i<3;$i++) {
$c= (string)($i+1).'test.txt';
file_put_contents ($c,'');
rename ($c,'test/'.$c);
}
?>Удалите папку с названием dir.
rmdir ('test'); // если директория непустая не удалитсяПусть в корне вашего сайта лежит папка old. Переименуйте ее на new.
rename ('old','new');Пусть в корне вашего сайта лежит папка dir, а в ней какие-то текстовые файлы. Выведите на экран столбец имен этих файлов.
<?php
$a = scandir('dir');
$a = array_diff(scandir('dir'),['..','.']);
var_dump($a);
?>Пусть в корне вашего сайта лежит папка dir, а в ней какие-то текстовые файлы. Переберите эти файлы циклом, откройте каждый из них и запишите в конец восклицательный знак.
<?php
$t = array_diff(scandir('dir'),['..','.']);
for ($i=2;$i<=5;$i++)
{
$e[$i] = preg_replace("/.*?\./", '', $t[$i]);
if ($e[$i] == "txt") {
//echo "$t: ".$t[$i]." ".$i."<BR>";
$s = file_get_contents('dir/'.$t[$i]);
file_put_contents('dir/'.$t[$i],$s."!");
}
}
?>Пусть в корне вашего сайта лежит папка dir, а в ней какие-то текстовые файлы. Переберите эти файлы циклом и выведите их тексты в браузер.
<?php
$t = array_diff(scandir('dir'),['..','.']);
for ($i=2;$i<=5;$i++)
{
$e[$i] = preg_replace("/.*?\./", '', $t[$i]);
if ($e[$i] == "txt") {
//echo "$t: ".$t[$i]." ".$i."<BR>";
$s = file_get_contents('dir/'.$t[$i]);
echo $t[$i].": ".$s."<BR>";
}
}
?>Пусть дан путь к файлу. Проверьте, файл это или папка.
<?php
$files = array_diff(scandir ('dir'),['..','.']);
// var_dump($files);
foreach ($files as $file) {
echo "<BR>",$file,"<BR>";
var_dump (is_file ('dir/'.$file));
var_dump (is_dir ('dir/'.$file));
}
?>Пусть в корне вашего сайта лежит папка dir, а в ней какие-то файлы и подпапки. Выведите на экран столбец имен подпапок из папки dir.
<?php
$files = array_diff(scandir ('dir'),['..','.']);
// var_dump($files);
foreach ($files as $file) {
if (is_dir ('dir/'.$file)) {
echo $file,"<BR>";
}
}
?>Пусть в корне вашего сайта лежит папка dir, а в ней какие-то файлы и подпапки. Выведите на экран столбец имен файлов из папки dir.
<?php
$files = array_diff(scandir ('dir'),['..','.']);
// var_dump($files);
foreach ($files as $file) {
if (is_file ('dir/'.$file)) {
echo $file,"<BR>";
}
}
?>Пусть в корне вашего сайта лежит папка dir, а в ней какие-то текстовые файлы и подпапки. В подпапках в свою очередь также могут быть текстовые файлы и подпапки. Рекурсивно пройдитесь по всем вложенным папкам и выведите в браузер пути ко всем текстовым файлам.
/*
<?php
getFiles ('dir');
function getFiles ($dir) {
$files = array_diff (scandir($dir),['..','.']);
foreach ($files as $file) {
$path =$dir.'/'.$file;
if (is_dir($path)) {
getFiles($path);
}
else {
var_dump ($path);
}
}
}
?>*/
/*
<?php
var_dump (getFiles ('dir'));
function getFiles ($dir) {
$files = array_diff (scandir ($dir),['..','.']);
$result=[];
foreach ($files as $file) {
$path=$dir.'/'.$file;
if (is_dir($path)) {
$result=array_merge($result,getFiles($path));
} else {
$result[]=$path;
}
}
return $result;
}
?>*/
Пусть в корне вашего сайта лежит папка dir с текстовыми файлами и подпапками. Рекурсивно пройдитесь по всем вложенным папкам и в конец каждого текстового файла запишите восклицательный знак.
<?php
<?php
getFiles ('dir');
function getFiles ($dir) {
$files = array_diff (scandir($dir),['..','.']);
foreach ($files as $file) {
$path =$dir.'/'.$file;
//echo '<BR>',$path,'<BR>';
if (is_dir($path)) {
getFiles($path);
}
else {
// var_dump ($path);
file_put_contents($path,"!");
}
}
}
?>Пусть в корне вашего сайта лежит папка dir с текстовыми файлами и подпапками. Удалите папку dir вместе с ее содержимым.
<?php
removeDir ('dir');
function removeDir ($dir) {
$files = array_diff (scandir($dir),['..','.']);
foreach ($files as $file) {
$path =$dir.'/'.$file;
//echo '<BR>',$path,'<BR>';
if (is_dir($path)) {
removeDir($path);
}
else {
unlink ($path);
}
}
rmdir($dir);
}
?>Функция glob PHP
?>
Функция glob PHP
var_dump (glob('dir/*.txt')); // неограниченное количество символов
var_dump (glob('dir/?.txt')); // только 1 символ
var_dump (glob('dir/[12].txt')); // 1 или 2
rmdir($dir);
}
?>
- Log in to post comments
- 5802 reads