Не могу решить задачу на php. Из нескольких текстовых фалов собрать массив строк $Data
Нужно определить наличие файлов (текстовые), затем их прочитать построчно и внести в массив $Data. Не получается в функции обработать файлы, выдает значение Null. Пробовал с глобальной переменной тоже не помогло. В какую сторону смотреть? Вот код:
<?php
$dir = 'files_ns';
$BaseFails = [];
$failes = scandir($dir);
foreach ($failes as $value) {
if (substr($value,0,2)=='ns'){
$BaseFails[]=$value;
}
}
$Data = [];
for ($i=0; $i < count($BaseFails); $i++) {
$Data[] = StrFails($BaseFails[$i]);
}
foreach ($Data as $value) {
echo $value.'<br>';
}
function StrFails($BaseFails)
{
$handle = @fopen("BaseFails", "r");
if ($handle) {
$Data = array();
while (($buffer = fgets($handle, 4096)) !== false) {
$Data[] = $buffer;
}
if (!feof($handle)) {
echo "Error: unexpected fgets() fail\n";
}
fclose($handle);
}
return $Data;
}
?>
Ответы (1 шт):
Автор решения: Мих Креп
→ Ссылка
У вас на var_dump($Data); null? Ну так у вас $Data нигде не используется в области видимости вашего кода. Я так понимаю должно быть как-то так.
$Data = [];
for ($i=0; $i < count($BaseFails); $i++) {
$Data[] = StrFails($BaseFails[$i]);
}
Это если ваша программа верно работает (не вникал). Еще было бы неплохо придерживаться какого-то стиля оформления кода. Рекомендую PSR