diff --git a/index.php b/index.php index 88f892b5becaea90acfe01dd277afca50804137d..cf92dd95be37d883842ab898eaef4adb75d1e2aa 100644 --- a/index.php +++ b/index.php @@ -111,5 +111,17 @@ print $e->getMessage(); } ?> + + +

Function 9

+ readFileLineByLine(__DIR__ . "/public/text.txt") as $line) { + print $line; + } + } catch (Exception $e) { + print $e->getMessage(); + } + ?> \ No newline at end of file diff --git a/src/Functions.php b/src/Functions.php index ce1742a26eaf9939e2574ef9c006f9e5d65c9de3..f11823681d29c8b49516771c031c467e0899da5f 100644 --- a/src/Functions.php +++ b/src/Functions.php @@ -207,5 +207,27 @@ class Functions throw new RuntimeException("File not found: $filePath"); } } + + /** + * Переделай своё решение 8 задачи: + * замени вывод всего текста из файла разом на + * построчный вывод используя yield + * @param string $filePath путь до файла + * @return iterable + */ + + public function readFileLineByLine(string $filePath): iterable + { + if (file_exists($filePath)) { + $file = fopen($filePath, 'rb'); + while(!feof($file)) { + yield fgets($file); + } + fclose($file); + } + else { + throw new RuntimeException("File not found: $filePath"); + } + } }