2013-07-01 104 views
1

請問有人可以幫我嗎?我有一個分析錯誤:語法錯誤,83行文件的意外結束,但不知道爲什麼。代碼是這樣的:文件末尾要求

<!DOCTYPE html> 

<html> 
<head> 
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type"> 

    <title></title> 
</head> 

<body> 
    <?php 
     header('Content-type: text/html; charset=utf-8'); 

     $path = 'fotos'; # Directorio donde están las imágenes 
     $limit = 4; # Cuantas imágenes se mostraran por pagina 
     $limit_file = 5; # Imágenes a mostrar por linea en la tabla 
     $n = 0; 
     $desde; 
     $hasta; 
     # Comprobamos si es un directorio y si lo es nos movemos a el 
     if (is_dir($path)){ 
      $dir = opendir($path); 
      # Recorremos los ficheros que hay en el directorio y cogemos solamente aquellos cuya extensión 
      # sea jpg, gif y png y la guardamos en una lista 
      while (false !== ($file = readdir($dir))) { 
       if (preg_match("#([a-zA-Z0-9_\-\s]+)\.(gif|GIF|jpg|JPG|png|PNG)#is",$file)){ 
        $list[] = $file; 
       } 
      } 

      # Cerramos el directorio 
      closedir($dir); 
      # Ordenamos la lista 
      sort ($list); 
      # Contamos el total de elementos en la lista 
      $total = count($list); 
      $paginas = ceil($total/$limit); 
      if (!isset($_GET['pg'])){ 
       $desde = 0; 
       $hasta = $desde + $limit; 
      }else if((int)$_GET['pg'] > ($paginas-1)){ 
       # Si pg es mayor que el total de paginas se muestra un error 
       echo "<b>No existe esta pagina en la galería</b> 
        <a href='galeria.php'>Volver a la galería</a>"; 
       die(); 
      }else{ 
       $desde = (int)$_GET['pg']; 
      } 
      # Y generamos los enlaces con los thumbnails 
      for ($i=($desde*$limit);($i!=$total) && ($i<($desde*$limit)+$limit);$i++){ 
       # Comprobamos si existe en la lista una llave con el valor actual de $i para evitar errores 
       if(array_key_exists($i, $list)){ 
        echo "<td><a href='$path/$list[$i]'><img src='thumb.php?img=$path/$list[$i]' /></a> 
         </td>\n"; 
        $n++; 
        if ($n == $limit_file){ 
         echo "</tr>\n<tr>\n"; 
         $n = 0; 
        } 
       } 
      } 
     }else{ 
      echo "$path no es un directorio"; 
     } 

     echo "</tr>"; 
     echo "</table>"; 
     echo "<p id='paginas'>"; 

     # Generamos un listado de las paginas de la galería 
     for ($p = 0; $p<$paginas; $p++){ 
      $pg = $p+1; 
      if ($p == $desde){ 
       echo "$pg "; 
      }else{ 
       echo "<a href ='?pg=$p'>$pg</a> "; 
      } 

      echo"</p>"; 
      echo "Hay un total de $total imagen(es) en $paginas paginas(s)" ; 
    ?> 
</body> 
</html> 

的代碼是爲了顯示在一個分頁,即圖像的列表,如果你有比X圖像多,觀看這些X和歸結的鏈接到其他網頁。

+4

開始使用IDE,突出打開/關閉括號 –

回答

3

您的for-loop,for ($p = 0; $p<$paginas; $p++){,不會在任何地方結束。

0

您的大括號不匹配 - for循環沒有右大括號。

Unexpected end of file只是意味着PHP到達文件的末尾,但期待別的東西 - 在這種情況下是一個右大括號。

0

沒有clossing支架的 'for' 循環

# Generamos un listado de las paginas de la galería 
    for ($p = 0; $p<$paginas; $p++){ 
0

應關閉的循環是這樣的: -

for ($p = 0; $p<$paginas; $p++){ 
    $pg = $p+1; 
    if ($p == $desde){ 
     echo "$pg "; 
    }else{ 
     echo "<a href ='?pg=$p'>$pg</a> "; 
    } 
}            // close for loop 
    echo"</p>"; 
    echo "Hay un total de $total imagen(es) en $paginas paginas(s)" ; 
    ?>