Home PHP А.Волос "PHP Практика " Глава 4 Делаем из файла - главу (VirtueMar) Listing_14_09
Listing_14_09 PDF Печать E-mail
Автор: А.Волос   
18.04.2011 01:53
Глава_03
<?php
//скрипт, который создает контент первой страницы главы
//со списком ссылок на другие страницы.

$tempi = 2; $fix = 0;
$numb1 = "";

$leks_01 = "<li><a href=\"Gl_";
$leks_02 = "_";
$leks_03 = ".html\">";
$leks_04 = "</a><br>";

//-----------------------------
// откроем файл для записи ошибок
$filename = "error.txt";
if(!($myFile = fopen($filename, "wa"))) {

print("Error: ");
print("'$filename' could not be created\n");
exit;
}

//-----------------------------
// откроем файл для записи списка заголовков
$filename2 = "to5/a";
if(!($myFile2 = fopen($filename2, "wa"))) {

print("Error: ");
print("'$filename2' could not be created\n");
exit;
}

//-----------------------------
// open directory
$myDirectoryFrom = opendir("to4");
$n=0;
// считаем в массив имена файлов из from1
while(FALSE !== ($entryName = readdir($myDirectoryFrom))) {

$masNameFrom[$n] = $entryName;
$n++;
}
// сосчитаем количество элементов в массиве
$indexLimit = count($masNameFrom);
////////////////////////////////////////////////////
// open directory
$myDirectoryFrom2 = opendir("from2");
$n=0;
// считаем в массив имена файлов из from2
while(FALSE !== ($entryName2 = readdir($myDirectoryFrom2))) {
$masNameFrom2[$n] = $entryName2;
$n++;
}

////////////////////////////////////////////////////////
//------найдем первую цифру в имени будущей ссылки

$strTemp = $masNameFrom2[2];//имя первого файла из $myDirectoryFrom
$numb1 = substr($strTemp,3,2);
//fputs($myFile, "--$numb1--" ); //проверка
//fputs($myFile, "==$strTemp==" ); //проверка
// для каждого имени файла повторим цикл
// for($index=2; $index < $indexLimit; $index++) {
// fputs($myFile, "==$strTemp==" ); //проверка
// }

//////////////////////////////////////////////////////////

fputs($myFile2, "<ul type=circle>\n" ); //

///////////////////////////////////////////
//----------------------------------------
// для каждого имени файла повторим цикл
for($index=2; $index < $indexLimit; $index++) {

//---------------------------
// откроем файл для чтения
$Temp = "to4/";
$filenameFrom = "$Temp$masNameFrom[$index]";
if(!($myFileFrom = fopen($filenameFrom, "r"))) {
fputs($myFile, "'$filenameFrom' could not be opened\n" );
exit;
}

//---------------------------
//откроем файл для записи
$Temp1 = "to5/";
$filenameTo = "$Temp1$masNameFrom[$index]";
if(!($myFileTo = fopen($filenameTo, "w"))) {

fputs($myFile, "'$filenameTo' could not be created\n" );
exit;
}

//найдем на страницах заголовки, сохраним их в массиве
while(!feof($myFileFrom)){

//читаем строку из файла
$myLineQ = fgets($myFileFrom, 255);

$prim = substr_count($myLineQ,'function <SPAN CLASS="gloss">');

if($prim > 0){

$slovo1 = strstr($myLineQ,'function <SPAN CLASS="gloss">');// (обрез слева по $Id:
$slovo = trim($slovo1);//убрать пробелы по краям строки
$slovo2 = substr($slovo, 29,-1);
$slovo3 = trim($slovo2);//убрать пробелы по краям строки
$name_script1 = strtok($slovo3,"<");//(обрез справа по пробелу)
$name_script = "$name_script1()";//(обрез справа по пробелу)

//выведем
if($tempi<10) {
$newString = "$leks_01$numb1$leks_02$fix$tempi$leks_03$name_script$leks_04\n"; //

fputs($myFile2, $newString);

}
else{
$newString = "$leks_01$numb1$leks_02$tempi$leks_03$name_script$leks_04\n"; //
fputs($myFile2, $newString);
}

$tempi++;

}

fputs($myFileTo, "$myLineQ");

}//end while--------------------------------

// закроем файлы
fclose($myFileFrom);
fclose($myFileTo);

}//end for----------------------------

fputs($myFile2, "</ul type=circle>\n" ); //

// close directory
closedir($myDirectoryFrom);
fclose($myFile2);
fclose($myFile);
//--------------------------------

?>


Вверх

Обновлено 05.05.2011 07:59