Andronik
Новичок
Ошибка с explode()
Братцы! Не могу понять где ошибка в моём скрипте.
Суть скрипта следующая. (Можно всё сделать через базу данных, но очень интересен именно такой случай).
Есть файл под названием config.dat. В нём строка следующего содержания:
Директория1^#^dir1#~~!Директория2^#^dir2#~~!
Русскими символами написаны названия директорий для удобного восприятия пользователем. Латинскими - имена директорий. Приведённый ниже цикл функцией explode() разбивает строку на разделы:
Директория1^#^dir1
Директория2^#^dir2
Эти разделы разделяются на название и ссылку и выводятся под порядковым номером. Но при завершении возникает ошибка в list($g1, $g2)=$vat;
Выведя список из двух параметров выдаёт ошибку: Undefined offset: 1
И после вывода ошибки печатает "2.) ".
В каком месте я напартачил. Если есть желание ответить скрипт ниже. Заранее,очень благодарен.
Братцы! Не могу понять где ошибка в моём скрипте.
Суть скрипта следующая. (Можно всё сделать через базу данных, но очень интересен именно такой случай).
Есть файл под названием config.dat. В нём строка следующего содержания:
Директория1^#^dir1#~~!Директория2^#^dir2#~~!
Русскими символами написаны названия директорий для удобного восприятия пользователем. Латинскими - имена директорий. Приведённый ниже цикл функцией explode() разбивает строку на разделы:
Директория1^#^dir1
Директория2^#^dir2
Эти разделы разделяются на название и ссылку и выводятся под порядковым номером. Но при завершении возникает ошибка в list($g1, $g2)=$vat;
Выведя список из двух параметров выдаёт ошибку: Undefined offset: 1
И после вывода ошибки печатает "2.) ".
В каком месте я напартачил. Если есть желание ответить скрипт ниже. Заранее,очень благодарен.
PHP:
<?
$mir=fopen("config.dat", "rt");
$sc=fread($mir, 10000);
if(strlen($sc)<3){
echo "<b style=\"color:8F0101\">Ни одного проекта не создано...</b>";
exit();
}
$ol1="<a href=\"Адрес до созданной директории";
$ol2="/\">";
$ol3="</a>";
$dot=0;
do{
$dot++;
$tt="#~~!";
$mt="^#^";
$diz=explode($tt, $sc, 2);
list($q1, $q2)=$diz;
if(strlen($q1)>3){
$pat=explode($mt, $q1, 2);
list($ct, $dir)=$pat;
echo "<b>".$dot.".) </b>".$ol1.$dir.$ol2.$ct.$ol3."<br>";
}
$sc=$q2;
if(explode($tt, $sc, 2)==Array($sc)){
$vat=explode($mt, $sc, 2);
list($g1, $g2)=$vat; //Ошибка
echo "<b>".$dot.".) </b>".$ol1.$g2.$ol2.$g1.$ol3."<br>";
break;
}
}while(strlen($sc)!=0);
fclose($mir);
?>