Чат Telegram
Группа ВКонтакте
Новый комментарий


1nSide 07.05.2018 в 11:47

1 задача, сделал запись в фаил чисел от 100 до 1 и вывод их из этого файла

$file = fopen(__DIR__ . '/file4.txt', 'w');
for ($i = 100; $i>= 1; $i--) {
    fputs($file, $i . PHP_EOL);
}

$file = fopen(__DIR__ . '/file4.txt', 'r');
while (!feof($file)) {
    echo fgets($file);
    echo '<br>';
}
fclose($file);
ivashkevich 07.05.2018 в 16:57

А зачем? Нужно было написать скрипт, который выводит свой собственный код.

1nSide 07.05.2018 в 11:49

2 задачу не понял как делать

ivashkevich 07.05.2018 в 17:00

Что именно не поняли? На каком пункте?

AnatolyMartyanov 07.05.2018 в 17:06

1 задание

<?php
$file = file_get_contents(__FILE__);
echo $file;

или

<?php
$file = fopen(__FILE__ , 'r');
while  (!feof($file)) {
    echo fgets($file);
    echo '<br>';
}
ivashkevich 07.05.2018 в 17:09

Отлично ;)
А можно было вообще написать echo file_get_contents... без использования переменных

AnatolyMartyanov 07.05.2018 в 17:10

Понял, спасибо

lig7771991@list.ru 24.11.2018 в 10:29

Первый вариант у меня ничего не выводит на экран, только второй...

Pavel-Tonk 06.12.2018 в 01:25

У меня та же проблема.

Fellini 08.03.2019 в 00:54

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

AnatolyMartyanov 07.05.2018 в 17:07

2 задание

$dir = '../file';
$files = scandir($dir);
foreach ($files as $file) {
    echo $file . '<br>';
}

foreach ($files as $dirr) {
    if (is_dir($dirr)) {
        echo $dirr . '<br>';
    }
}
ivashkevich 07.05.2018 в 17:08

Тут всё хорошо, но нужно использовать константу __DIR__

DmitryGavrilov 04.07.2018 в 14:54
<?php
//Выведите список всех файлов в текущей директории скрипта.
//Создайте теперь в директории со скриптом несколько папок.
//Сделайте так, чтобы в списке, выводимом программой, остались только папки.

//выводим файлы
$files = scandir(__DIR__ . '/');
foreach ($files as $file) {
echo $file . '<br>';
}

//выводим папки как папки, прокольно что есть is_dir)
$files = scandir(__DIR__ . '/');
foreach ($files as $dirr) {
    if (is_dir($dirr)) {
        echo $dirr . '<br>';
    }
}

?>
ivashkevich 06.07.2018 в 18:02

Всё хорошо.

Закрывающий тег ?> в конце не нужен.

rusgil 15.07.2018 в 10:38

Во примерах для открытия файлов и includ'ах используется DIR.
А зачем нужен абсолютный путь, почему не воспользоваться относительным?
В чем разница относительных и абсолютных путей?

ivashkevich 15.07.2018 в 10:53

Потому что константа __DIR__ содержит путь до директории с файлом, в котором она написана. А если мы внутри /index.php подключим файл в папке /inc/123.php, в котором будет ещё один include, то он сработает относительно того файла, который мы запустили, а не в котором этот include написан. То есть если в /inc/123.php будет код:

include '456.php';

То подключится не файл /inc/456.php, а /456.php. Не в одной директории с файлом где написан include, а в одной директории с файлом, к которому мы обратились (/index.php).

Использование __DIR__ эту проблему решает.

Fox-24 15.08.2018 в 12:03

Привет! Благодарю за урок!) Все супер)

1.

<?php
// Напишите программу, которая выводит свой собственный код.
// Сделайте так, чтобы в этой программе не было упоминания имени самого скрипта
// (если программа лежит в файле homework.php, то упоминания homework.php не должно быть в исходнике).

$file = fopen(__FILE__, 'r');
while (!feof($file)) {
    echo fgets($file);
    echo '<br>';
}
fclose($file);

2.

<?php
// Выведите список всех файлов в текущей директории скрипта.
$dir = __DIR__ . '/';
$files = scandir($dir);

foreach ($files as $value) {
    echo $value . '</br>';
}

3. Тут я немного больше сделал:)

<?php
// Создайте теперь в директории со скриптом несколько папок.
// Сделайте так, чтобы в списке, выводимом программой, остались только папки.

// Массив с именами новых папок
$newfolders = ['folder-1', 'folder-2', 'folder-3'];

// Если папки еще не существуют, создаем новые
foreach ($newfolders as $folder) {
    if (!is_dir($folder)) {
        mkdir($folder, 0700);
    }
}

// Задаем директорию и получаем массив с файлами
$dir = __DIR__ . '/';
$files = scandir($dir);

// Выводит список всех папок
foreach ($files as $value) {
    if (is_dir($value))
        echo $value . '</br>';
}
ivashkevich 16.08.2018 в 21:50

Отлично =)

dom1r 21.08.2018 в 10:35
  1. Мне показалось через fgets лучше, т.к он построчно выводит, а file_get_contents через пробел
<?php
echo "hello";

$file = fopen(__FILE__, 'r');
while (!feof($file)) {
    echo fgets($file);
    echo '<br>';
}
fclose($file);

2.

<?php
//выводит список файлов без директории
$filelist = [];

if ($handle = opendir(__DIR__)) {
    while (false !== ($entry = readdir($handle))) {
        if (is_file($entry)) {
            $filelist[] = $entry;
        }
    }

    closedir($handle);
}

print_r($filelist);
<?php
//выводит список папок
$filelist = [];

if ($handle = opendir(__DIR__)) {
    while (false !== ($entry = readdir($handle))) {
        if (is_dir($entry)) {
            $filelist[] = $entry;
        }
    }

    closedir($handle);
}

print_r($filelist);
ivashkevich 25.08.2018 в 21:31
  1. Строки схлопывает браузер, если посмотрите исходный код страницы, то увидите переносы строк. В Вашем варианте новые строки выводятся из-за ручного добавления тега <br> после каждой строки. Также можно было весь вывод обернуть в тег <pre>.
  2. Хорошо
  3. Хорошо
ArtemijeKA 11.09.2018 в 17:13
  1. $file = fopen($_SERVER['SCRIPT_FILENAME'], 'rb');
    while (!feof($file)) {
        echo fgets($file);
        echo '<br>';
    }
    fclose($file);
  2. $listFiles = array_diff(scandir(__DIR__), array('..', '.'));
    foreach ($listFiles as $fileName) {
        echo $fileName;
        echo '<br>';
    }
  3. $listFiles = array_diff(scandir(__DIR__), array('..', '.'));
    foreach ($listFiles as $fileName) {
        if (is_file($fileName)) {
            continue;
        }
        echo $fileName;
        echo '<br>';
    }

Спасибо за уроки!

ivashkevich 22.09.2018 в 09:55

Хорошо, но:

  1. для получения пути до скрипта лучше использовать константу __FILE__, так как $_SERVER['SCRIPT_FILENAME'] не всегда покажет скрипт, в котором этот код написан.
  2. вместо array(1, 2) уже давно принято использовать запись [1, 2] - переучивайтесь.
ArtemijeKA 08.10.2018 в 16:04

А когда $_SERVER['SCRIPT_FILENAME'] не покажет текущий файл? Когда вставлен в файле через require ?

ivashkevich 08.10.2018 в 23:09

Да

ArtemijeKA 10.10.2018 в 05:35

Спасибо

Benya 22.09.2018 в 18:24
<?php
$data = htmlspecialchars(file_get_contents(__FILE__));
echo $data;
ivashkevich 22.09.2018 в 20:37

Отлично!

Benya 22.09.2018 в 19:13
<?php
$files = scandir(__DIR__ . '/');
foreach ($files as $file) {
    if (is_dir($file)) {
        echo $file . '<br>';
    }
}
ivashkevich 22.09.2018 в 20:37

Супер!

SBTesla 28.09.2018 в 10:14
$file = fopen(__FILE__ , 'r');
while (!feof($file)) {
    echo fgets($file);
    echo '<br>';
}

fclose($file);
//--------------------------------------------------

$dir = __DIR__. '/';
$file = scandir($dir);

foreach ($file as $value) {
    echo $value. '<br>';
}
ivashkevich 28.09.2018 в 23:14

Хорошо

demyanovpaul@yandex.ru 05.11.2018 в 15:20

Напишите программу, которая выводит свой собственный код.
Сделайте так, чтобы в этой программе не было упоминания имени самого скрипта (если программа лежит в файле homework.php, то упоминания homework.php не должно быть в исходнике).

echo file_get_contents(__FILE__);

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

foreach(scandir(__DIR__ . '/') as $file)
    if(is_dir($file))
        echo $file . '<br>';
ivashkevich 05.11.2018 в 21:50

1 - ОК.
2 - НЕ ОК. Используйте фигурные скобки для тела цикла и условий! Это стандарт в мире PHP. Вам рановато про это читать, но раз уж игнорируете мои комментарии, то почитайте вот это =)

demyanovpaul@yandex.ru 07.11.2018 в 07:23
foreach(scandir(__DIR__ . '/') as $file){
    if(is_dir($file)){
        echo $file . '<br>';
    }
}

Извините, старые привычки засели глубоко)Я читал, просто не увидел)
Я читал PSR. Это у меня от другого языка въелось)

ivashkevich 08.11.2018 в 10:31

Понял, ок)

virtual2018 22.11.2018 в 14:14

задача 1

//в случае php/html файла без обработки функцией htmlspecialchars, будет пустая страница
//необходимо преобразовать в html сущности
$data = htmlspecialchars(file_get_contents(__FILE__));
echo $data;

задача 2 - список файлов

if ($array_file = scandir(__DIR__)) {
    foreach ($array_file as $index) {
        if (is_file($index)) {
            echo '<br>' . $index;
        }
    }
}

задача 2.1 - список директорий

if ($array_file=scandir(__DIR__)) {
    foreach ($array_file as $index) {
        // отсеим стандартные указатели на текущую и вышестоящую диреторию
        if (is_dir($index) && $index != '.' && $index != '..') {
            echo '<br>'.$index;
        }
    }
}
ivashkevich 22.11.2018 в 22:18

Отлично

Bogdan 27.12.2018 в 11:58

//Напишите программу, которая выводит свой собственный код.

//$file = fopen(__FILE__, 'r');
//while (!feof($file)) {
//    echo fgets($file);
//    echo '<br>';
//}
//fclose($file);

//Выведите список всех файлов в текущей директории скрипта.

$showAllFiles = scandir(__DIR__);
foreach ($showAllFiles as $value) {
    echo $value . '<br>';
}

// Сделайте так, чтобы в списке, выводимом программой, остались только папки.

$showAllDirs = scandir(__DIR__);
foreach ($showAllDirs as $value) {
    echo is_dir($value) ? $value  . '<br>': '';
}
ivashkevich 28.12.2018 в 21:09
  1. Почему все закомментировано?
  2. ОК
  3. ОК
ashfedor 11.03.2019 в 20:32
$url = $_SERVER['PHP_SELF'];

$file = fopen(__DIR__ . $url, 'r');
while (!feof($file)){
    echo fgets($file);
    echo '<br>';
}
fclose($file);
ivashkevich 11.03.2019 в 21:33

Есть константа:

__FILE__
ashfedor 11.03.2019 в 20:46
$dir = __DIR__ . '/';

foreach (scandir($dir) as $files ){
    if (is_dir($files)){
        echo $files . '<br>';
    }
}
ivashkevich 11.03.2019 в 21:34

Отлично

babls2332@gmail.com 12.03.2019 в 21:11
<?php
$file = fopen(__FILE__, 'r');
while (!feof($file)) {
    echo fgets($file);
    echo '<br>';
}

$files = scandir(__DIR__);

foreach ($files as $dir) {
    if (is_dir($dir)) {
        echo $dir . '<br>';
    }
}
ivashkevich 14.03.2019 в 09:07

Отлично!

rashik-2009@yandex.ru 13.03.2019 в 19:58
Привет. Просто скопировал по уроку и
возникает такая ошибка, название файлов совпадает, лежит все в одной директории, могут быть еще какие то причины этой ошибки? 

Warning: fopen(C:\xampp\htdocs/file.txt): failed to open stream: No such file or directory in C:\xampp\htdocs\files.php on line 2

Warning: fgets() expects parameter 1 to be resource, bool given in C:\xampp\htdocs\files.php on line 4

Warning: fgets() expects parameter 1 to be resource, bool given in C:\xampp\htdocs\files.php on line 4

Warning: fgets() expects parameter 1 to be resource, bool given in C:\xampp\htdocs\files.php on line 4

Warning: fgets() expects parameter 1 to be resource, bool given in C:\xampp\htdocs\files.php on line 4

Warning: fclose() expects parameter 1 to be resource, bool given in C:\xampp\htdocs\files.php on line 7
ivashkevich 14.03.2019 в 09:08

C:\xampp\htdocs/file.txt - пишет, что файла такого нет. Выбрали xampp вместо OpenServer - разбирайтесь сами, что там не так, я предупреждал)

rashik-2009@yandex.ru 14.03.2019 в 19:00

Код заработал, но только через расширение PHP. Т.е. так

<?php
$file = fopen(__DIR__ . '/file.php', 'r');

Как я понял, что работает только через PHP, txt просто не видит, может это особенность работа xampp ну и ладно)).
Зато файлы он "рисует", а правильно я понимаю, что вносить информацию таким способом можно не только в txt-файлы? Можно, например, вывести текст в pdf-файл. Я попробовал, но файл почему-то не открылся((.

ivashkevich 17.03.2019 в 23:02

Потому что PDF - это не просто текст, это формат данных со специальными правилами. Про то, что якобы данные пишутся в .php-файл, но не пишутся в .txt - звучит как-то неправдоподобно. Скорее всего, есть еще что-то.

rashik-2009@yandex.ru 18.03.2019 в 10:36

Да, точно есть, на домашнем компе все работает, на рабочем (как раз на нем я это задание и пытался выполнить впервые) пишет файл не найден. Я еще когда html и css изучал заметил, что стили не работают(если их с внешнего файла подключать), что то с рабочим компом.

ivashkevich 18.03.2019 в 12:30

Вы скопируйте с рабочего компа на домашний и сравните файлы. Где-то будет отличие.

Grewi 22.03.2019 в 23:42

Первое задание:

//Выводим содержимое файла программы
$fOpen = fopen(__FILE__, 'r');

while (!feof($fOpen)) {
    echo htmlentities(fgets($fOpen)).'</br>';
}

Второе задание:

//Выводим список категорий
$dir = scandir(__DIR__ . '/work');
foreach ($dir as $a) {
    if ($a == '.' || $a == '..') { //Удаляем ненужные элементы массива
        continue;
    }
    $i = iconv('windows-1251', 'utf-8', $a); //Правим кодировку

    if (is_dir(__DIR__ . '/work/' . $a)) {
        echo '<p><strong style="color: red;">Папка: </strong>' . $i . '</p>';
    }
}

//Выводим список файлов
foreach ($dir as $a) {
    if ($a == '.' || $a == '..') { //Удаляем ненужные элементы массива
        continue;
    }
    $i = iconv('windows-1251', 'utf-8', $a); //Правим кодировку

    if (is_file(__DIR__ . '/work/' . $a)) {
        $path_parts = pathinfo($i);
        echo '<p><strong style="color:blue;">Файл: </strong>';
        echo $path_parts['filename'];
        echo '<b>.'.$path_parts['extension'].'</b>';
        echo '</p>';
    }
}

//Создаем директории из массива
$newFold = ['Папка--1', 'Папка--2', 'Папка--3'];
foreach ($newFold as $i) {
    $i = iconv('utf-8//IGNORE', 'windows-1251', $i);
    if (file_exists(__DIR__ . '/work/' . $i) == false) {
        mkdir(__DIR__ . '/work/' . $i);
    }
}

//Удаляем файлы из директории
foreach ($dir as $g){
    if(is_file(__DIR__.'/work/'.$g)){
        unlink(__DIR__.'/work/'.$g);
    }
}
ivashkevich 23.03.2019 в 22:28

Отлично разобрались! Так держать =)

Grewi 23.03.2019 в 23:55

Спасибо и за поддержку и классные уроки, но пока получается медленнее, чем хотелось. Не все сразу запоминается, иногда приходиться возвращаться к прошлым материалам и повторять. Но процесс захватывающий.

ivashkevich 24.03.2019 в 00:22

Это главное, что нравится. Остальное вообще не важно)

polvanovv 05.04.2019 в 12:48

1.

echo file_get_contents(__FILE__);

2.1

$dir = scandir(__DIR__);
foreach ($dir as $resource){
    echo $resource;
    echo '<br>';
}

2.2

$dir = scandir(__DIR__);
foreach ($dir as $folder){
    if (is_dir($folder)) {
        echo $folder;
        echo '<br>';
    }
}
ivashkevich 05.04.2019 в 14:07

Отлично

Boodoo 07.04.2019 в 20:38
<?php
    $text = htmlspecialchars(file_get_contents(__FILE__));
    echo $text;

    $arr = scandir(__DIR__);
    foreach($arr as $elem) {
        echo $elem . '<br>';
    }

    for($i=1; $i<4; $i++) {
        mkdir('folder' . $i);   
    }

    $arr = scandir(__DIR__);
    foreach($arr as $elem) {
        if(is_dir($elem)) {
            echo $elem . '<br>';
        }
    }
ivashkevich 08.04.2019 в 21:44

Отлично!

Dram 24.04.2019 в 15:33

Домашка №1 (были проблемы с кодировкой комментов, пришлось изгалиться)

<?php
//Напишите программу, которая выводит свой собственный код.
//Сделайте так, чтобы в этой программе не было упоминания имени самого скрипта
//(если программа лежит в файле index.php, то упоминания index.php не должно быть в исходнике).

$file = file_get_contents(__DIR__ . '/index.php');

$file=str_replace('index.php', '', $file);

file_put_contents(__DIR__ . '/file.txt', iconv('utf-8', 'windows-1251', $file));
ivashkevich 25.04.2019 в 07:44

Выводить код нужно в браузер. Никаких имён файлов быть не должно

Dram 25.04.2019 в 08:52
<?php
$file = file_get_contents(__DIR__ . '/index.php');

$file=str_replace('index.php', '', $file);

var_dump($file);

Скажите, пожалуйста, почему в коде выше не работает

echo $file;
print_r($file);

P.S. прошу проверить домашку в соседних уроках, я за последние дни урока 4-5 прошел вроде...

ivashkevich 25.04.2019 в 12:08

Советую вам посмотреть решения других учеников. Чтобы не использовать имя текущего файла используется константа __FILE__

artemship 30.04.2019 в 19:30
<?php

//Вывод исходного кода программы
$data = htmlspecialchars(file_get_contents(__FILE__));
echo $data;
echo '<br><br>';

//Вывод файлов
$directoryContents = scandir(__DIR__);
foreach ($directoryContents as $item) {
    if (is_file($item)) {
        echo $item . '<br>';
    }
}
echo '<br>';

//Создание папок, если их нет
$folderName = 'folder_';
for ($i = 1; $i < 4; $i++) {
    if (!is_dir($folderName . $i)) {
        mkdir($folderName . $i);
    }
}

//Вывод папок
$directoryContents = scandir(__DIR__);
foreach ($directoryContents as $item) {
    if (is_dir($item) && $item !== '.' && $item !== '..') {
        echo $item . '<br>';
    }
}
ivashkevich 02.05.2019 в 17:45

Супер!

krollik1000000@gmail.com 12.05.2019 в 22:29
$file = fopen(__file__,'r');
while(!feof($file)) {
    echo fgets($file);
}
fclose($file);

$way = scandir(__DIR__ . '/');

forEach($way as $key) {
    if (!is_file($key) && $key != '.' && $key != '..') {
       echo $key . '<br>';
    }
}
ivashkevich 12.05.2019 в 23:43

Отлично

Moskva 02.06.2019 в 21:34

1 :

$file = fopen(__FILE__, 'r'); 
while (!feof($file)){
    echo fgets($file) . '<br>';
}
fclose($file);

2.1 :

$file = scandir(__DIR__); 
foreach ($file as $string){
    echo $string . '<br>';
}

2.2 :

$file = scandir(__DIR__);
foreach ($file as $string){
    if(is_dir($string)) { 
        echo $string . '<br>';
    }
}
ivashkevich 03.06.2019 в 18:13

Супер! По первому заданию советую посмотреть еще другие решения, есть вариант в одну строку =)

Moskva 26.06.2019 в 16:31

Попробовал в 1-м задании заменить на

echo file_get_contents(__FILE__);

Не работает, эта команда запускается только когда есть этот кусок кода

while (!feof($file)){
    echo fgets($file) . '<br>';
}

Полностью так выглядит

$file = fopen(__FILE__, 'r');
while (!feof($file)){
    echo fgets($file) . '<br>';
}
fclose($file);

echo file_get_contents(__FILE__);

Ну и соответственно содержимое файла выводит дважды.

ivashkevich 27.06.2019 в 19:05

Такого быть не может. Проверьте ещё раз. Скорее всего не сохранили файл.

esqrx 14.06.2019 в 16:11

/// 1

var_dump(file_get_contents(__FILE__));
ivashkevich 15.06.2019 в 06:34

Супер!

esqrx 16.06.2019 в 01:53

// 2.1

// Можно было и без **IF** обойтись, просто вывести
// можно ли сократить условие **IF** ??

$filesDir = scandir(__DIR__);
foreach ($filesDir as $item) {
    if ($item !== '.' and $item !== '..') {
        echo $item . '<br>';
    }
}
ivashkevich 17.06.2019 в 09:56

!in_array можно, но и так норм

esqrx 16.06.2019 в 02:07

// 2.2

$filesDir = scandir(__DIR__);
foreach ($filesDir as $item) {
    if (is_dir($item)) {
        if ($item !== '.' and $item !== '..') {
            echo $item . '<br>';
        }
    }
}
ivashkevich 17.06.2019 в 09:56

Отлично

Reechniy 14.07.2019 в 15:21
дз1
<?php
$file=file_get_contents(__FILE__);
echo $file;

дз2
<?php
$file=scandir(__DIR__.'/');
foreach ($files as $file) {
    echo $file.'<br>';
}
$files=scandir(__DIR__.'/');
foreach ($files as $dirr){
    if (is_dir($dirr)){
        echo $dirr .'<br>';
    }
}
ivashkevich 14.07.2019 в 15:24

Отлично

AlexxxEy 19.07.2019 в 02:48

Задание 1.

$file = fopen( __FILE__, 'r');
while(!feof($file)){
    echo fgets($file) . '</br>';
}

Задание 2.

$file = scandir(__DIR__ . '/');
foreach($file as $files){
    echo $files . '</br>';
}

foreach($file as $files){
    if(is_dir($files))
    {
        echo $files . '</dir>';
    }
}
ivashkevich 19.07.2019 в 07:04

Отлично

Blook 28.07.2019 в 17:36

1.

$file = fopen(__FILE__, 'r');

while (!feof($file)) {
    echo fgets($file);
    echo '<br>';
}

fclose($file);

2.

//Убираем точки с массива
$dirInfo = array_diff_assoc( scandir(__DIR__), ['.', '..'] );

foreach ($dirInfo as $subject) {
    if(is_dir($subject)) {
        echo $subject . '<br>';
    }
}
ivashkevich 28.07.2019 в 18:31

Отлично!

Dreft 02.09.2019 в 18:21

Задача 1.

var_dump(file_get_contents(__FILE__));

Задача 2.

$files = scandir(__DIR__);
foreach ($files as $file) {
    if (is_file($file)) {
        echo $file . "<br>";
    }
}

Задача 2.1

$files = scandir(__DIR__);
foreach ($files as $file) {
    if (!is_file($file) && $file != '.' && $file != '..') {
        echo $file . "<br>";
    }
}
ivashkevich 02.09.2019 в 18:51
  1. Отлично
  2. Отлично
Vladimir96 06.09.2019 в 17:54
<?php
//Задание 1
    $file = fopen(__DIR__ . '/file2.php' , 'r');

    while(!feof($file)) {
        echo fgets($file);
        echo '<br>';
    }

    fclose($file);

//Задание 2
    $fileList = opendir("C:/OSPanel/domains/textfile.loc");

    if($fileList) {       

        while($entry = readdir($fileList)){
            if (is_dir($entry)) {
                echo $entry."<br />";
            }
        }

        closedir($fileList);
    }
ivashkevich 08.09.2019 в 09:30

Всё ок, но в первом задании можно было проще - использовать функцию file_get_contents

Naskek 16.09.2019 в 13:38

описание картинки

У меня почему-то вместо текста в браузере знаки вопроса, в чем может быть проблема ?

ivashkevich 16.09.2019 в 18:49

В кодировке

Ooleg 18.09.2019 в 14:26

Это было пока что самое сложное задание, все три задания выполнил в одном файле, но первое опустил в самый конец кода. С нетерпением жду критику, задание далось тяжело и уверен, что использовал не самый оптимальный способ его выполнения.
P.S. Посмотрел как другие выполнили, слишком сложно у меня получилось и да, вариант не оптимальный.

<?php
if($handle = opendir(__DIR__)){
    echo 'Выводим список файлов';
    echo '<br>';
    while(false !== ($file = readdir($handle))) {
        if($file != "." && $file != ".."){
            echo '"' . $file . '"' . '<br>';
        }
    }
    closedir($handle);
}

echo '<br>' . 'Создаём папки и выводим их';
for ($i = 0; $i <= 2; $i++)
if (!is_dir(__DIR__ . "/" . 'dir' . $i)){
    mkdir(__DIR__ . "/" . 'dir' . $i);
}
if($handle = opendir(__DIR__)){
    echo '<br>';
    while(false !== ($file = readdir($handle))) {
        if($file != "." && $file != ".." && is_dir($file)){
            echo '"' . $file . '"' . '<br>';
        }
    }
    closedir($handle);
}

//Удаляем ненужные папки
for ($i = 0; $i <= 2; $i++)
    if (is_dir(__DIR__ . "/" . 'dir' . $i)){
        rmdir(__DIR__ . "/" . 'dir' . $i);
    }

echo '<br>' . 'Находим наш скрипт и выводим его' . '<br>';
$file = fopen('./'.$_SERVER['PHP_SELF'], 'r'); //Здесь я не до конца понял, что сделал, но работает
echo '"' . './'.$_SERVER['PHP_SELF'] . '"' . '<br>';
while (!feof($file)) {
    echo fgets($file);
    echo '<br>';
}
fclose($file);
ivashkevich 18.09.2019 в 17:51

По выводу содержимого файла, лучше так:

echo file_get_contents(__FILE__);

Остальное ок

dliashchenko 01.10.2019 в 10:02
<?php
echo file_get_contents(__FILE__, null, null, 6, 1000) . "<br/>";

$scanDir = scandir(__DIR__);
foreach ($scanDir as $file){
    if(is_file($file)) {
        echo $file . "<br/>";
    }
}

foreach ($scanDir as $dir){
    if (is_dir($dir)){
        echo $dir . "<br/>";
    }
}
ivashkevich 01.10.2019 в 12:26

Отлично

H3licoptero 09.10.2019 в 13:08
Второе задание

$dir = __DIR__;
$displayDir = scandir($dir);
foreach ($displayDir as $file) {
    if(is_dir($file)) {
        echo $dir . '<br>';
    }
}
ivashkevich 09.10.2019 в 19:29

Отлично

Evilinside 22.10.2019 в 16:57

1ое задание ( тут решил записать данные в другой файл)

$file = copy(__DIR__ . '/files.php',__DIR__ .'/file3.txt');
file_put_contents(__DIR__ .'/file3.txt', $file);

2ое задание

$folders = ['1', '2', '3'];

foreach ($folders as $folder) {
    if (!is_dir($folder)) {
        mkdir($folder, 0777);
    }
}
$files = scandir(__DIR__ . '/');
foreach ($files as $file){
    if(is_dir($file)){
        echo $file . PHP_EOL;
    }
}
ivashkevich 22.10.2019 в 16:59
  1. Вообще не то, что требовалось в задании. Переделайте, пожалуйста.
  2. $newFiles=[]; - это для чего?
Evilinside 22.10.2019 в 17:41

1.

echo file_get_contents(__FILE__ );

2.$newFiles = []; отредактировал, почти сразу же)

ivashkevich 22.10.2019 в 18:27

Отлично

anton-gogo@mail.ru 02.11.2019 в 20:05

1

<?php
$file = file_get_contents(__FILE__);
echo $file;

2

<?php
$files = scandir(__DIR__ . '/');
foreach ($files as $file) {
echo $file . '<br>';
}

$files = scandir(__DIR__ . '/');
foreach ($files as $dirr) {
    if (is_dir($dirr)) {
        echo $dirr . '<br>';
    }
}
ivashkevich 03.11.2019 в 05:19

Отлично

zuxarevaalina88@gmail.com 13.11.2019 в 15:04

1

<?php
$file = fopen(__FILE__ , 'r');
while  (!feof($file)) {
    echo fgets($file);
    echo '<br>';

2.1

<?php
$files = scandir(__DIR__ . '/');
foreach ($files as $file) {
echo $file . '<br>';
}

2.2

<?php 
$files = scandir(__DIR__ . '/');
foreach ($files as $dirr) {
if (is_dir($dirr)) {
echo $dirr . '<br>';
}
}
ivashkevich 13.11.2019 в 17:14

Всё хорошо, только отступы куда-то потерялись. И первое задание можно было проще сделать.

Логические задачи с собеседований