Работа с файлами
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
- 5417 reads