1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Alguém me pode ajudar com um "Parse error" em PHP

Discussão em 'Web Development' iniciada por Lit, 29 de Novembro de 2012. (Respostas: 3; Visualizações: 711)

  1. Lit

    Lit Power Member

    Olá a todos, eu tenho este código em php que me está a dar um erro e não consigo achar o erro, alguém me pode ajudar?

    O erro que me dá diz: Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in .../public_html/galeria/gallery.php on line 12

    Aqui está o código
    PHP:
    <?php

        
    function genGallery($path)
        {
            
    $files scandir("$path");
            
    $pages array_chunk($files12);

            
    $pn = (int) $_GET['page'];

            foreach (
    $pages[$pn] as $file) {
                if (
    $file != "." && $file != "..") {
                    echo 
    "<a href="images/$file" rel="lightbox[group]" title="">";
                    echo 
    "<img src="images/$file" alt="" />n";
                    echo 
    "</a>n";
                }
            }

            for (
    $i 1$i count($pages) + 1$i++) {
                echo 
    "<a href="index.php?page=$i">$i</a>n";
            }
        }

    ?>
    Obrigado.
     
  2. barricas

    barricas Power Member

    tens que fazer escaping as quotes:

    PHP:
     <?php

        
    function genGallery($path)
        {
            
    $files scandir($path);
            
    $pages array_chunk($files12);

            
    $pn = (int) $_GET['page'];

            foreach (
    $pages[$pn] as $file) {
                if (
    $file != "." && $file != "..") {
                    echo 
    "<a href=\"images/{$file}\" rel=\"lightbox[group]\" title="">";
                    echo 
    "<img src=\"images/{$file}\" alt="" />n";
                    echo 
    "</a>n";
                }
            }

            for (
    $i 1$i count($pages) + 1$i++) {
                echo 
    "<a href=\"index.php?page={$i}\">{$i}</a>n";
            }
        }

    ?> 
    Ou então usas single-quotes:

    PHP:
        function genGallery($path)
        {
            
    $files scandir($path);
            
    $pages array_chunk($files12);

            
    $pn = (int) $_GET['page'];

            foreach (
    $pages[$pn] as $file) {
                if (
    $file != '.' && $file != '..') {
                    echo 
    '<a href="images/'.$file.'" rel="lightbox[group]" title="">';
                    echo 
    '<img src="images/'.$file.'" alt="" />n';
                    echo 
    "</a>n";
                }
            }

            for (
    $i 1$i count($pages) + 1$i++) {
                echo 
    '<a href="index.php?page='.$i.'">$i</a>n';
            }
        }
    Cada vez que usas uma quote do mesmo tipo tens que fazer escaping com um \ caso não queras que acabe ali a string.
    E a diferença das single quotes para as double é que as single o PHP não procura por código para executar.

    $variavel = 123;

    echo 'texto aqui $variavel';
    mostra: texto aqui $variavel

    echo "texto aqui $variavel';
    mostra : texto aqui 123

    as {} que usei serve para quando tens a variavel próxima de chars que não sejam da variável (para evitar erros). Exemplo:

    echo "{$variavel}textoaqui";
    se não tivesse as {} o PHP procurava pela variavel $variaveltextoaqui

    Quando não procuras por variaveis usa as single quotes (como fiz no if na segunda "caixa")

    Aqui:
    scandir("$path")
    basta:
    scandir($path)
     
    Última edição: 29 de Novembro de 2012
  3. HLopes

    HLopes Power Member

    PHP:
    <?php


        
    function genGallery($path)
        {
            
    $files scandir("$path");
            
    $pages array_chunk($files12);


            
    $pn = (int) $_GET['page'];


            foreach (
    $pages[$pn] as $file) {
                if (
    $file != "." && $file != "..") {
                    echo 
    '<a href="images/$file" rel="lightbox[group]" title="">';
                    echo 
    '<img src="images/'.$file.'" alt="" />n"';
                    echo 
    "</a>n";
                }
            }


            for (
    $i 1$i count($pages) + 1$i++) {
                echo 
    '<a href="index.php?page='.$i.'">$i</a>n"';
            }
        }


    ?>
    Não dá erros, mas não faço ideia se faz o que tu queres.
     
    Última edição: 29 de Novembro de 2012
  4. Lit

    Lit Power Member

    Obrigado barricas e HLopes pela ajuda, a segunda opção do barricas já fez com que mostrasse a galeria mas ainda não funciona como deveria, supostamente este código funciona, o site de onde o tirei tinha um demo mas já não está disponível, se me puderem ajudar agradeço.

    Aqui o link do site com o código e foto da galeria. ---> http://www.webcrunch.in/programming...-pagination-goodness-within-five-minutes.html

    Se tiverem alguma sugestão de outro código é bemvindo.

    Obrigado
     

Partilhar esta Página