Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    617

    Problema con link di immagini incartelle!

    Salve raga, non potendo usare un database, ho creato(scopiazzando e ragionando) uno script che mi permette di stampare a video le foto che ho in determinate cartelle.

    questo è lo script:<?php
    $percorso="immagini/ricordi/";
    $cartella=opendir("$percorso");
    while ($file =readdir($cartella)){
    $file_array[] = $file;
    }
    foreach ($file_array as $file) {
    echo "[img]$percorso$file[/img]";
    }

    ?>

    Ogni foto deve essere collegata a se stessa in modo da poterla visualizzare ingrandita.
    Nasce però un prblema: se il link non c'è, le foto vengono impaginate secondo il css e quindi come piace a me. Se c'è il link però le foto vengono posizionate in maniera strana e in certi punti ci sono dei rettangolini cliccabili che mi collegano a phpadmin e mi mostrano l'elenco delle foto nella cartella o le cartelle contenute in immagini.

    avendo provato a immettere a manina ogni singola foto tutto questo non accade quindi mi viene da pensare che sia un problema di script.

    Chiedo lumi.

    Grazie anticipatamente.

  2. #2
    Utente di HTML.it L'avatar di carlo2002
    Registrato dal
    Jun 2002
    Messaggi
    2,746
    per prima cosa aggiusta questa riga così

    Codice PHP:
    echo "[url=".$percorso.$file."][img].$percorso.$file.[/img][/url]" 
    Errare humanum est, perseverare ovest

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    617
    Cambiato, ma il problema persiste, ci sono sempre questi due rettangolini infidi che non so proprio da dove vengano fuori!

  4. #4
    readdir() legge TUTTO quello che c'e' in una directory, anche se non sono immagini. Se ci sono solo immagini COMUNQUE legge le directory corrente e superiore (indicate da '.' e '..').

    Prova con questo:

    Codice PHP:
    <?php
    $percorso 
    "immagini/ricordi/";

    foreach (
    glob($percorso "*.jpg") as $file) {
        echo 
    "<a href=\"$file\"><img src=\"$file\" /></a>\n";
    }

    ?>
    supponendo le immagini siano tutte JPG.

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    617
    Così è perfetto, grazie mille.
    Adesso mi vado ad approfondire quel glob che non so ancora cosa significa,grazie molte.

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    617
    Un ultima domandina, se le immagini non fossero solo in jpg ma anche in gif o altri formati, come faccio a metterlo qui?

    foreach (glob($percorso . "*.jpg") as $file)

    insomma potrei aggiungere anche altri formati nel corso del tempo.

    Gra<ie in anticipo.

  7. #7
    In quel caso devi leggere tutta la directory, con glob() scandir() o opendir()/readdir(), e filtrare solo i file con le estensioni che ti interessano.

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    617
    Ancora una domanda, so che ho detto che era l'ultima ma proprio nn riesco ad andare avanti.

    con questo foresch: foreach (glob($percorso . "*") as $file) {
    echo "\"$file\"\n";}

    la variabile $file assume un valore uguale a tutto il suo percorso, a me serve che tale variabile sia solo il nome del file contenuto nella cartella.
    Questo perchè se devo mettere un l'ink all'immagine,ho bisogno di specificare un'altro percorso che porta a una foto con lo stesso nome ma ingrandita.

    In pratica con questo ciclo mostro la miniatura(che ho in un'altra cartella) e poi devo fare il link all'immagine grande.Ovviamente le foto si chiamano nello stesso modo, sia la grande che la piccola.

    Come fare?

    Grazie anticipatamente e per la pasienza, stò imparando si vede?eheheheh.

  9. #9

  10. #10
    Utente di HTML.it L'avatar di carlo2002
    Registrato dal
    Jun 2002
    Messaggi
    2,746
    prova questo ciclo

    Codice PHP:
    $dir =  "immagini/ricordi/" ;

    if (!(
    $dp opendir($dir))) die ("Non si può aprire la directory $dir.") ;

    while(
    $file readdir($dp)) {

         if (
    $file != '.' && $file != '..' ) {

             echo 
    $file."
    ;

        }

    Errare humanum est, perseverare ovest

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.