Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    Codici immagini e visualizzazione

    Ciao ragazzi, un mio fornitore mi ha dato delle immagini per i prodotti che compro da lui, c'è solo un problema non capisco come cavolo fà a catalogarle

    Adesso vi spiego certi articoli sono così

    123

    altri

    1234

    ed altri

    12345

    Quindi io faccio così

    $images = substr("$articolo_prod", 0,4);
    $url_img = ''.$url.'/images/shop/'.$nome_produttore_shop_get.'/'. $images . '_m.jpg';


    Con la variabile $images prendo i primi 4 caratteri dell'articoli e li inserisco all'interno della variabile $url_img in modo da stamparla dentro il tag <img>, fin qui nulla di strano, c'è un problema certe immagini al posto ditagliare i primi 4 caratteri dovrei tagliare i primi 3 o i primi 5..

    Pensavo ad un if, una cosa del genre

    $fp = @fopen($url_img,"r");
    if ($fp) {

    }

    solo che ho paura di appesantire troppo il sito secondo voi??

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    636
    <?php
    foreach (glob($url.'/images/shop/'.$nome_produttore_shop_get.'/'. '*.jpg') as $url_img) {
    //utilizza $url_img come ti pare
    }

    con la prima riga ti scorri tutti i file .jpg nella cartella

    $url.'/images/shop/'.$nome_produttore_shop_get.'/'

    a ogni ciclo vai a mettere nella variabile $url_img il suo percorso

    se vuoi conoscere il codice dell'articolo dentro al ciclo metti

    $codice_articolo = substr(basename($url_img), 0, strpos(basename($url_img, '.')-1);

  3. #3
    Ciao, grazie per la risposta, solo una cosa io provo a fare


    foreach (glob($url.'/images/shop/'.$nome_produttore_shop_get.'/'. '*.jpg') as $url_img) {



    echo "Url: $url_img
    \n";

    }

    Ma non mi da nessun risultato, tranne questo errore

    Parse error: parse error, expecting `','' or `';''

    solo nn capisco dove stà l'errore


    Ciau

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    636
    l'errore è relativo al foreach o all'echo dentro al ciclo?
    (vedi il numero di riga dell'errore)

    considera che basta passare l'url relativo e non quello assoluto, quindi penso basti fare

    foreach (glob("images/shop/$nome_produttore_shop_get/*.jpg") as $url_img){
    echo "Url: $url_img
    ";
    }

    l'errore se c'è si trova nella stringa che passi a glob.

    io ho fatto una prova a scorrere le immagini della cartella 'immagini' che sta nella root di un sito in locale con il seguente script:

    <?php
    foreach (glob("immagini/*.jpg") as $url_img) {
    $nomefile = basename($url_img);
    $codice_articolo = substr($nomefile, 0, strpos($nomefile, "."));
    echo "Url: $url_img - Codice: $codice_articolo
    \n";
    }
    ?>

    e non da nessun errore

  5. #5
    Ciao, io ho provato a fare così

    Codice PHP:
    foreach (glob("../images/shop/marca/*_m.jpg") as $url_img) {
    $nomefile basename($url_img);
    $codice_articolo substr($nomefile0strpos($nomefile"."));

    $p=explode("_m",$codice_articolo );
    $articolo_1=$p['0'];
    $articolo_2=$p['1'];

    if(
    $articolo_prod == $articolo_1){
        
        
    $images "$articolo_1";
        
    $url_img ''.$url.'/images/shop/'.$nome_produttore_shop_get.'/'$images '_m.jpg';
    }


    Allora sulla prima riga uso il foreach per estrarre tutte che hanno la sigla _m (che stà per media).

    Dopo uso l'explode tramite la variabile $p per ricavarmi solo il codice dell'articolo, poi confronto il codice dell'articolo con l'articolo del prodotto in modo da avere l'immagine giusta per l'articolo, solo che non funziona nulla

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    636
    se codice dell'articolo precede '_m.jpg' senza fare l'explode che ti produce un valore inutile ($articolo2 che contiene sono '_m') dovresti modificare il codice così:



    Codice PHP:
    foreach (glob("../images/shop/marca/*_m.jpg") as $url_img) { 
        
    $nomefile basename($url_img); 
        
    $codice_articolo substr($nomefile0strpos($nomefile"_m.jpg"));  
        if(
    $articolo_prod == $codice_articolo){          
            
    $url_img ''../images/shop/$nome_produttore_shop_get/$codice_articolo_m.jpg"; 
        }  

    se quel codice non produce nessun output, vuol dire che sbagli l'url e non trovi nessuna immagine che si chiama *_m.jpg all'url ../images/shop/marca

    Tra l'altro io non capisco a cosa serva tutto questo se tu il codice del prodotto lo conosci già e quindi al posto di fare il ciclo e tutto il resto ti basterebbe fare:

    <?php $url_img = ''../images/shop/$nome_produttore_shop_get/$articolo_prod_m.jpg"; ?>
    [img]<?php echo $url_img ?>[/img]

    facendo una cosa del genere otterresti l'immagine che ti serve(sempre ammesso che l'url sia giusto) o in alternativa (se l'immagine non esiste) la scritta 'immagine non disponibile', mi sa che avevo interpretato male la tua domanda.

  7. #7
    Il problema è che il codice dell'articolo per esempio è fatto così 2210VB.21 è l'immagine è salvata in questo modo 2210_m.jpg

    Però può succere che certi articoli hanno il codice così: 61420VB.92 è l'immagine 61420_m.jpg

    Ed altri codici son così: 225VB.90 è l'immagine è 225_m.jpg

    Quindi sarebbe da prendere solo i numeri dell'articolo, pensavo all'explode ma non so come prendere solo i numeri..

    Ciau

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    636
    quindi tra l'altro a te non servono tutti i numeri, ma solo quelli che precedono le lettere

    Codice PHP:
    $i=0;
    while(
    $i<strlen($codice_articolo) && ereg("[0-9]"$codice_articolo[i])){
        
    $nome_immagine[$i] = $codice_articolo[$i];
        
    $i++;
    }

    $nome_immagine .= "_m.jpg"
    in sostanza il while scorre il codice dell'articolo carattere per carattere fintanto che i caratteri sono numeri interi, quindi vado a copiare il carattere nella stringa $nome_immagine.

    In poche parole vado a copiare nella stringa $nome_immagine il prefisso della stringa $codice_articolo fatto da numeri interi.

    uscito dal ciclo aggiungo il suffisso _m.jpg

  9. #9
    Ma questo lo metto nel while di quando estraggo i dati dal database?? Ho fuori?

  10. #10
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    636
    Codice PHP:
    <?php
        $codice_articolo 
    "222vl32";
        
    $i 0;
        
    $nome_immagine "";
        while(
    $i<strlen($codice_articolo) && preg_match("/[0-9]/"$codice_articolo[$i])){
            
    $nome_immagine.= $codice_articolo[$i];
            
    $i++;
        }
        
    $nome_immagine .= "_m.jpg";
        echo 
    $nome_immagine;
    ?>
    eccoti un codice d'esempio eseguilo e vedi se è quello che fa per te così tu stesso ti rendi conto di dove metterlo

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 © 2024 vBulletin Solutions, Inc. All rights reserved.