Помогите понять ошибку скрипта PHP!

Рейтинг: 0Ответов: 1Опубликовано: 09.06.2011

Помогите пожалуйста c PHP! Я написал код который должен соеденять несколько htm файлов и обьединять в один но комптлятор всё время пишет:

Warning: feof(): 3 is not a valid stream resource in Z:\home\school71.uz\www\Copy of index.php on line 10
Warning: fgets(): 3 is not a valid stream resource in Z:\home\school71.uz\www\Copy of index.php on line 11
Warning: fclose(): 3 is not a valid stream resource in Z:\home\school71.uz\www\Copy of index.php on line 12
    Warning: feof(): 3 is not a valid stream resource in Z:\home\school71.uz\www\Copy of index.php on line 10
Warning: fgets(): 3 is not a valid stream resource in Z:\home\school71.uz\www\Copy of index.php on line 11
Warning: fclose(): 3 is not a valid stream resource in Z:\home\school71.uz\www\Copy of index.php on line 12

и так до бесконечности вот мой код:

<?php
$fp;
$fpref="html/";
$files=array("ttags.htm","title.htm","menu.htm","tmenu.htm","content.htm","bottom.htm","btags.htm");
$document="";
for($i=0;$i<=count($files);$i++){
$file="$fpref"."$files[$i]";
print($file);
if(file_exists($file)){
$fp=fopen($file,'r');
while(!(feof($fp))){
$document.=fgets($fp);
fclose($fp);
}
}
else{
print("<script>alert(\"Извените, произошла ошибка на странице, пожалуйста обратитесь chernivan-96@mail.ru!\")</script>");
}
}
print "$document";
?>

я уже пол часа думаю никак ее пойму в чём ошибка!

Ответы

▲ 2Принят

Ваша ошибка вот в чем:

while(!(feof($fp))){
$document.=fgets($fp);
fclose($fp);
}

не нужно закрывать файл внутри цикла, нужно так:

while(!(feof($fp))){
$document.=fgets($fp);
}
fclose($fp);

а еще лучше упростить весь ваш код:

$dir = "html/";
$files=array("ttags.htm","title.htm","menu.htm","tmenu.htm","content.htm","bottom.htm","btags.htm");
foreach ($files as $file)
{
  if (file_exists($dir.$file))
  {
    $document .= file_get_contents($dir.$file);
  }
  else
  {
     die("Извените, но я не знаю как правильно пишется слово 'Извините'");
  }
}
echo $document;