- есть ли в пхп средства - "читать следующий файл в каталоге"? он как-нибудь может определить, какой файл является следующим?
да, читаеш директорию и скрипт выдаст тебе список файлов в каталоге
Вот тебе пример скрипта :
<?php
// пишем функцию для листинга файлов в указаном каталоге
function list_directory($dir)
{
$file_list = '';
$stack[] = $dir;
while ($stack) {
$current_dir = array_pop($stack);
if ($dh = opendir($current_dir)) {
while (($file = readdir($dh)) !== false) {
if ($file !== '.' AND $file !== '..') {
$current_file = "{$current_dir}/{$file}";
if (is_file($current_file)) {
$file_list[] = "{$file}";
} elseif (is_dir($current_file)) {
$stack[] = $current_file;
}
}
}
}
}
return $file_list;
}
//вызываем функцию и в качестве параметра передаём ей полный путь к каталогу
/* если под виндовсом, то путь выглядит так : $dirname = "C:\\MyCatalog\\website"; // двойные слэши обязательны
* если под линуксом, то путь выглядит так : $dirname = "/usr/home/vwww/mywebsite";
*/
$files = list_directory($dirname); // получаем массив $files со списком всех файлов в данном каталоге
?>
- а внутрь файла залезть можно чтобы прочитать например 2 строки, и сделать их ссылками, а потом, щёлкая по этим ссылкам - открываются эти файлы и читаешь их себе?
да, любой файл можно прочитать построчно
Вот пример кода :
допустим что файл у нас имеет вид
фамилия;имя;отчество;телефон
фамилия;имя;отчество;телефон
фамилия;имя;отчество;телефон
тогда скрипт по его обработке выглядит так
<?php
// Получаем весь файл в массив. Каждая строка - элемент массива
// подать в функцию путь к файлу также как и в скрипте с директориями. Для винвовса и для линукса по разному
$stroki = file("C:\\sample.txt");
// далее проходим весь массив и обрабатываем каждую строку
foreach ($stroki as $nomer_stroki => $stroka)
{
//сдесь нам надо обработать каждую строку. Выбрать данные, которые разделены точкой с запятой
$massiv_elementov = explode(";", $stroka); //создаём массив данных из строки разделённой точкой с запятой.
// далее мы знаем сколько элементов у нас в каждой строке (имя, фамилия, отчество, телефон). Всего 4
// выводим каждый из нужных элементов (не забываем что массивы индексируются с 0)
print "Меня зовут ".$massiv_elementov[0]." ".$massiv_elementov[1]." ".$massiv_elementov[2].".<br />\n";
print "Мой телефон : ".$massiv_elementov[3].".\n<hr>";
}
?>