Форматированный вывод в файл в PHP
Базы данных SQL это хорошо, но это слишком мудрённое решение.
Без знания файлового ввода-вывода php бесполезен.
Мне
потребовалось создать скрипт, который бы считывал содержимое директории
и создавал список файлов в виде txt в определенном формате.
/* Считываем содержимое корневого каталога вирутального сервера */
$listf = './';
/* Сканируем каталог и помещаем содержимое в массив $filet */
$filet = scandir($listf);
/*Удивительно, но совершенно не явно, что переменная $filet на самом деле является массивом - таблицей, содержащей ячейки типа индекс => переменная
/*создаем переменную -- счётчик */
$i=0;
/*Создаем цикл "покуда" переменная $i не станет равной последнему индексу массива $filet*/
while($i != sizeof($filet)) {
pfintf('<br>#: %s, fn: %s, $i, $filet[$i]);
$i++;
};
/*Сей цикл выводит список файлов в текущий скрипт php, однако нам нужно направить его в файл*/
$fo = fopen("./text/test.txt", 'w+') or die ("<br> неудача");
fwrite($fo, "Тест записи"."\n");
$i=0; /*Обнуляем переменную %i для повторения цикла, но с файлом.
while($i != sizeof($filet)){
fwrite($fo,$i."\t".$filet[$i]."\n");
$i++;
};
fclose($fo);
Весь код написан для представления на php.
Я обнулил переменную,
поскольку она больше не нужна в предыдущем цикле, а в нынешнем я
использовал её для повторения того же цикла, только с записью данных в
файл.
Получаем файл с содержимым примерно таким:
Тест записи
0 .
1 ..
2 .htaccess
3 .scriptdeb.php.swp
4 bkgrnd.jpg
5 certs
А вывод на странице получаем таким:
# 0, fn .
# 1, fn ..
# 2, fn .htaccess
Согласно тому, что было написано в коде.
Теперь проблема стрима в файл решена.
Основная проблема была в том, что:
- Список файлов представляется в виде массива;
- Массив является двумерным, содержащим индекс и переменную;
- Массив может содержать любые типы переменных;
- Переменные доступны по имени переменной и её индексу $a[i]
- Для доступа к элементам массива необходимо создавать цикл, подставляющий индекс переменной массива;
- Конкатенация в функции fwrite реализована следующим образом:
fwrite($file, «Текст:».$var1.» Текст:».$var2); То-есть применяется символ точки; - Не забываем закрывать файл.
Цели работы с массивами:
Получить информацию в виде списка.
Передать её в базу данных, или получить из базы данных в виде массива.
Массив это фактически представление данных в файле, только файл этот виртуальный.
Для сохранности данных массивы необходимо сохранять в энергонезависимую память.
Комментарии
Отправить комментарий