有人能帮我吗?我有一个解析错误:语法错误,文件第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个图像并向下链接到其他页面。
您的for循环for ($p = 0; $p<$paginas; $p++){
不会在任何地方结束。
您的大括号不匹配-for循环没有右大括号。
Unexpected end of file
只是意味着PHP到达了文件的末尾,但期望得到其他东西——在本例中是一个大括号。
"for"循环没有闭合括号
# Generamos un listado de las paginas de la galería
for ($p = 0; $p<$paginas; $p++){
您应该像这样关闭for循环:-
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)" ;
?>