Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    STR_REPLACE problematico!

    Salve a me interesserebbe programmare uno script
    tale che una volta inserita una parola, la stessa
    viene sostituita da delle immagini. per fare ciò
    ho pensato di creare immagini per ogni singola lettera.
    il problema però nasce al momento della sostituzione.

    supponiamo che la parola sia "ciao";

    Codice PHP:
    $parola "ciao";
    $dir "lettere";

    $parola str_replace("a""<img src=\"$dir/a.gif\" border=\"0\" alt=\"\">"$parola);
    $parola str_replace("b""<img src=\"$dir/b.gif\" border=\"0\" alt=\"\">"$parola);
    $parola str_replace("c""<img src=\"$dir/c.gif\" border=\"0\" alt=\"\">"$parola);
    $parola str_replace("i""<img src=\"$dir/i.gif\" border=\"0\" alt=\"\">"$parola);
    $parola str_replace("o""<img src=\"$dir/o.gif\" border=\"0\" alt=\"\">"$parola);

    echo 
    $parola
    Il problema è che si crea un vortice senza fine, poichè per esempio
    border="0" che inizia per "b", verrà a sua volta sostituita, poichè
    così è indicato dalle istruzioni.

    C'è un modo per sostituire le lettere senza incappare in questo errore?

    ps_
    ho pensato anche a qualcosa di questo tipo, ovvero la sostituzione
    al volo di ogni lettera, senza fare una sfilza di str_replace, ma non
    riesco a finire di programmarlo..

    Codice PHP:
    function trasforma($parola) {


    $lunghezza_parola strlen($parola);
    $lunghezza $lunghezza_parola 1;



    for (
    $i 0$i <= $lunghezza; ++$i) {

    //$p = str_replace($parola[$i], "$parola[$i].gif", $parola);






    echo 
    $p;

    }

                  
    trasforma("ciao"); 

    Grazie a tutti per il supporto!

  2. #2
    La tua idea è buona ma devi usare substr() e switch

    Codice PHP:
    function trasforma($parola) {
     
    $lunghezza_parola strlen($parola) ;

     for (
    $i 0$i $lunghezza_parola; ++$i) {

      
    $sub substr($parola$i1);
      switch(
    $sub)
      {
        case 
    'a':
          echo 
    "<img src=\\"$dir/a.gif\\" border=\\"0\\" alt=\\"\\">";
        break;
        case 
    'b':
          echo 
    "<img src=\\"$dir/b.gif\\" border=\\"0\\" alt=\\"\\">";
        break;
          .
          .
          .
        case 
    'z':
          echo 
    "<img src=\\"$dir/z.gif\\" border=\\"0\\" alt=\\"\\">";
        break;
      }
     }

    }

                
    trasforma("ciao"); 
    Dovrebbe funzionare

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.