Глава 1 (продолжение 1)
Программа в цикле нашла все 16 файлов из 16 каталогов, каждый файл вытащила
и переписала их при помощи функции copy() в новые файлы. В формировании имен
новых файлов используется индекс массива (числа от 0 до 16). Отлично!
Имена каталогов в этой программе заданы путем комбинации строк и индекса массива, но можно
написать программу, кроторая будет считывать имена каталогов из системы при помощи функций
opendir() readdir(), как было сделано в предыдущих программах.
<?php
$masName1 = array();
//-----------------------------
// откроем файл для вывода ошибок
$filename = "error.txt";
if(!($errorFile = fopen($filename, "w")))
{
print("Error: ");
print("'$filename' could not be created\n");
exit;
}
//-----------------------------
$Str1 = "ПЕРВЫЕ ШАГИ";
$Str2 = ".files/r.htm";
$index = 0;
for($counter=370;$counter<387;$counter++)
{
//сохраним в массиве имена файлов для считывания
$StrTemp = "$Str1$counter$Str2";
$masName1[$index] = $StrTemp;
$index++;
}
// сосчитаем количество элементов в массиве
$indexLimit = count($masName1);
//в цикле откроем каждый файл, прочитаем и скопируем в новый файл
for($i=0;$i<$indexLimit;$i++)
{
// откроем файл для чтения
$filenameFrom = "$masName1[$i]";
if(!($myFileFrom = fopen($filenameFrom, "r")))
{
fputs($errorFile, "file '$filenameFrom' could not be opened");
exit;
}
// откроем файл для вывода результата
$filenameTo = "new$i.htm";
if(!($myFileOut = fopen($filenameTo, "w")))
{
fputs($errorFile, "file '$filename' could not be opened");
exit;
}
if(copy($filenameFrom, $filenameTo))
{
fputs($errorFile, " '$filenameFrom' copied to '$filenameTo' \n");
}
else
{
fputs($errorFile, "'$filenameFrom' could not copied to '$filenameTo'\n");
}
fclose($myFileOut);
fclose($myFileFrom);
}
// закроем файлы
fclose($errorFile);
?>
Анализ:
Здесь для копирования файлов применена функция copy(). Обратите внимание, что этой функции передаются имена файлов, а не их дескрипторы. В имя может входить и путь.
Назад |
Начало урока |
Вверх |
Вперед
Содержание