PHP HREF с условным

Мне нужно создать код галереи изображений с условной ссылкой. Я пытался, но так как это php-файл, все запуталось.

//defino un directorio    
$pathA = "images/"; 

//creo un array    
$ArrayA=Array();

//abro función glob para incluir imágenes en array    
foreach(glob($pathA . '*.jpg') as $imageA) {
    $ArrayA[]=$imageA;
}

//inicio bucle
for($n = 1; $n <= count($ArrayA); $n++):

    //href dada una imagen se va a la misma
    //sino se va a la imagen anterior   
    echo '<a href= "'if ($miArray[$i] == $miArray[5]) { echo $miArray[5] } else if ($miArray[$i] == $miArray[$n-1]) { echo $miArray[$i-1] }'">' .

    //etiqueta img src dentro de etiqueta href para mostrar imágenes  
    '<img src= "' . $miArray[$i] . '">' . '</a>' .

    '</a>';


endfor;

Ошибка:

Ошибка разбора: синтаксическая ошибка, неожиданное «если» (T_IF), ожидаемое «,» или «;»
в C: ... php в строке 26

Строка 26:

echo '<a href= "'if ($miArray[$i] == $miArray[5]) { echo $miArray[5] } else if ($miArray[$i] == $miArray[$n-1]) { echo $miArray[$i-1] }'">' .
0
задан 12.11.2016, 09:47
5 ответов

Ты выполняешь плохо так if как echo внутри того же самого, ты не можешь делать один echo внутри другого, следовательно ты должен закрывать tag php для renderizar как таковой HTML и уже внутри элемента <a> ты можешь переходить, чтобы делать условного, я оставляю тебе здесь твой собственный исправленный код:

<!DOCTYPE HTML>
<html lang="">
<head>
    <meta charset="UTF-8">
    <title>galeria</title>
</head>
<body>

<?php
$pathA = "images/";

//creo un array
$ArrayA=Array();

foreach(glob($pathA . '*.jpg') as $imageA) {
    $ArrayA[]=$imageA;
}

//inicio bucle
for($n = 1; $n <= count($ArrayA); $n++):
?>

<a href="<?php if ($miArray[$i] == $miArray[5]) { echo $miArray[5]; } else if ($miArray[$i] == $miArray[$n-1]) { echo $miArray[$i-1]; } ?>">
    <img src="<?php echo $miArray[$i]; ?>">
</a>

<?php
endfor;
?>
</body>
</html>
1
ответ дан 24.11.2019, 12:38

Я cambiarГ - в нее lГ-nea 26 оставляя cГіdigo asГ-:

<!DOCTYPE HTML>
<html lang="">
<head>
    <meta charset="UTF-8">
    <title>galeria</title>
</head>
<body>

<?php
//defino un directorio    
$pathA = "images/"; 

//creo un array    
$ArrayA=Array();

//abro función glob para incluir imágenes en array    
foreach(glob($pathA . '*.jpg') as $imageA) {
$ArrayA[]=$imageA;
}

//inicio bucle
for($n = 1; $n <= count($ArrayA); $n++):

//href dada una imagen se va a la misma
//sino se va a la imagen anterior   
$href = ($miArray[$i] == $miArray[5]) ? $miArray[5] : (($miArray[$i] == $miArray[$n-1]) ? $miArray[$i-1] : "");
echo '<a href= "'.$href.'">' .

//etiqueta img src dentro de etiqueta href para mostrar imágenes  
'<img src= "' . $miArray[$i] . '">' . '</a>' .

'</a>';


endfor;    
?>
</body>
</html>
1
ответ дан 24.11.2019, 12:38

Изменись ты cГіdigo из-за следующего:

<!DOCTYPE HTML>
<html lang="">
<head>
<meta charset="UTF-8">
<title>galeria</title>
</head>
<body>

<?php
//defino un directorio    
$pathA = "images/"; 

//creo un array    
$ArrayA=Array();

//abro función glob para incluir imágenes en array    
foreach(glob($pathA . '*.jpg') as $imageA) {
$ArrayA[]=$imageA;
}

//inicio bucle
for($n = 1; $n <= count($ArrayA); $n++):
?> 
//href dada una imagen se va a la misma
//sino se va a la imagen anterior   
<a href= "<?php if ($miArray[$i] == $miArray[5]) { echo $miArray[5]; } else if ($miArray[$i] == $miArray[$n-1]) { echo $miArray[$i-1]; } ?>">

//etiqueta img src dentro de etiqueta href para mostrar imágenes  
<img src= "<?php $miArray[$i] ?>"></a>

</a>   
<?php
endfor;    
?>
</body>
</html>
0
ответ дан 24.11.2019, 12:38
  • 1
    Сейчас он у меня остается ясным. Большое спасибо. – virtual8870 12.11.2016, 13:43

Я harГ - в следующего способа, избеги помещать условия и другие блоки cГіdigo внутри стоимости признака html.

<?php
    //defino un directorio    
    $pathA = "images/"; 

    //creo un array    
    $ArrayA=Array();

    //abro función glob para incluir imágenes en array    
    foreach(glob($pathA . '*.jpg') as $imageA) {
    $ArrayA[]=$imageA;
    }

    //inicio ciclo
    for($n = 1; $n <= count($ArrayA); $n++){

    //href dada una imagen se va a la misma
    //sino se va a la imagen anterior 

    if ($miArray[$i] == $miArray[5]) {
        $enlace = $miArray[5];
    }elseif($miArray[$i] == $miArray[$n-1]){
        $enlace = $miArray[$i-1];
    }

    ?>

    <a href="<?=$enlace?>"> 
       <img src="<?=$miArray[$i]?>">
    </a>

    <?php  
    }    
    ?>

</body>
</html>
0
ответ дан 24.11.2019, 12:38

Как cГіdigo, что aГ±adido, я сделал бы это таким:

РАНЬШЕ

//defino un directorio    
$pathA = "images/"; 

//creo un array    
$ArrayA=Array();

//abro función glob para incluir imágenes en array    
foreach(glob($pathA . '*.jpg') as $imageA) {
    $ArrayA[]=$imageA;
}

//inicio bucle
for($n = 1; $n <= count($ArrayA); $n++):

    //href dada una imagen se va a la misma
    //sino se va a la imagen anterior   
    echo '<a href= "'if ($miArray[$i] == $miArray[5]) { echo $miArray[5] } else if ($miArray[$i] == $miArray[$n-1]) { echo $miArray[$i-1] }'">' .

    //etiqueta img src dentro de etiqueta href para mostrar imágenes  
    '<img src= "' . $miArray[$i] . '">' . '</a>' .

    '</a>';


endfor;

СЕЙЧАС

//defino un directorio    
$pathA = "images/"; 

//creo un array    
$ArrayA = Array();

//abro función glob para incluir imágenes en array    
foreach(glob($pathA . '*.jpg') as $imageA) {
    $ArrayA[] = $imageA;
}

//inicio bucle
for($n = 1; $n <= count($ArrayA); $n++):

    //href dada una imagen se va a la misma
    //sino se va a la imagen anterior   
    if ($miArray[$i] == $miArray[5]) {
        echo '<a href= "' . $miArray[5] . '">';
    } 
    else if ($miArray[$i] == $miArray[$n-1]) { 
        echo '<a href= "' . $miArray[$i-1] . '">';
    }
    //etiqueta img src dentro de etiqueta href para mostrar imágenes  
    echo '<img src= "' . $miArray[$i] . '"></a>';

endfor;
0
ответ дан 24.11.2019, 12:38

Теги

Похожие вопросы