Visualizzazione risultati 1 fino 21 di 21

Discussione: str_replace non funziona!

  1. #1
    Guest

    Exclamation str_replace non funziona!

    Ciao a tutti!

    Ho un problema con str_replace. Praticamente dato un testo la pagina dovrebbe sostituirmi i caratteri con delle immagini ma non mi funziona:

    Ecco il codice

    Codice PHP:
    <?
    $testo
    ="Ciao come va?";


    $testo=str_replace("a","<img src=img\a.gif>",$testo);
    $testo=str_replace("b","<img src=img\b.gif>",$testo);
    $testo=str_replace("c","<img src=img\c.gif>",$testo);
    $testo=str_replace("d","<img src=img\d.gif>",$testo);
    $testo=str_replace("e","<img src=img\e.gif>",$testo);
    $testo=str_replace("f","<img src=img\f.gif>",$testo);
    $testo=str_replace("g","<img src=img\g.gif>",$testo);
    $testo=str_replace("h","<img src=img\h.gif>",$testo);
    $testo=str_replace("i","<img src=img\i.gif>",$testo);
    $testo=str_replace("j","<img src=img\j.gif>",$testo);
    $testo=str_replace("k","<img src=img\k.gif>",$testo);
    $testo=str_replace("l","<img src=img\l.gif>",$testo);
    $testo=str_replace("m","<img src=img\m.gif>",$testo);
    $testo=str_replace("n","<img src=img\n.gif>",$testo);
    $testo=str_replace("o","<img src=img\o.gif>",$testo);
    $testo=str_replace("p","<img src=img\p.gif>",$testo);
    $testo=str_replace("q","<img src=img\q.gif>",$testo);
    $testo=str_replace("r","<img src=img\r.gif>",$testo);
    $testo=str_replace("s","<img src=img\s.gif>",$testo);
    $testo=str_replace("t","<img src=img\t.gif>",$testo);
    $testo=str_replace("u","<img src=img\u.gif>",$testo);
    $testo=str_replace("v","<img src=img\v.gif>",$testo);
    $testo=str_replace("w","<img src=img\w.gif>",$testo);
    $testo=str_replace("x","<img src=img\x.gif>",$testo);
    $testo=str_replace("y","<img src=img\y.gif>",$testo);
    $testo=str_replace("z","<img src=img\z.gif>",$testo);
    $testo=str_replace("A","<img src=img\al.gif>",$testo);
    $testo=str_replace("B","<img src=img\bl.gif>",$testo);
    $testo=str_replace("C","<img src=img\cl.gif>",$testo);
    $testo=str_replace("D","<img src=img\dl.gif>",$testo);
    $testo=str_replace("E","<img src=img\el.gif>",$testo);
    $testo=str_replace("F","<img src=img\fl.gif>",$testo);
    $testo=str_replace("G","<img src=img\gl.gif>",$testo);
    $testo=str_replace("H","<img src=img\hl.gif>",$testo);
    $testo=str_replace("I","<img src=img\il.gif>",$testo);
    $testo=str_replace("J","<img src=img\jl.gif>",$testo);
    $testo=str_replace("K","<img src=img\kl.gif>",$testo);
    $testo=str_replace("L","<img src=img\ll.gif>",$testo);
    $testo=str_replace("M","<img src=img\ml.gif>",$testo);
    $testo=str_replace("N","<img src=img\nl.gif>",$testo);
    $testo=str_replace("O","<img src=img\ol.gif>",$testo);
    $testo=str_replace("P","<img src=img\pl.gif>",$testo);
    $testo=str_replace("Q","<img src=img\ql.gif>",$testo);
    $testo=str_replace("R","<img src=img\rl.gif>",$testo);
    $testo=str_replace("S","<img src=img\sl.gif>",$testo);
    $testo=str_replace("T","<img src=img\tl.gif>",$testo);
    $testo=str_replace("U","<img src=img\ul.gif>",$testo);
    $testo=str_replace("V","<img src=img\vl.gif>",$testo);
    $testo=str_replace("W","<img src=img\wl.gif>",$testo);
    $testo=str_replace("X","<img src=img\xl.gif>",$testo);
    $testo=str_replace("Y","<img src=img\yl.gif>",$testo);
    $testo=str_replace("Z","<img src=img\zl.gif>",$testo);

    $testo=str_replace("@","<img src=img\chiocciola.gif>",$testo);
    $testo=str_replace("\"","<img src=img\slash2.gif>",$testo);
    $testo=str_replace(":","<img src=img\duepunti.gif>",$testo);
    $testo=str_replace("!","<img src=img\esclamativo.gif>",$testo);
    $testo=str_replace("-","<img src=img\meno.gif>",$testo);
    $testo=str_replace("?","<img src=img\interrogativo.gif>",$testo);
    $testo=str_replace(";","<img src=img\puntovirgola.gif>",$testo);
    $testo=str_replace("/","<img src=img\slash2.gif>",$testo);
    $testo=str_replace("0","<img src=img\0.gif>",$testo);
    $testo=str_replace("1","<img src=img\1.gif>",$testo);
    $testo=str_replace("2","<img src=img\2.gif>",$testo);
    $testo=str_replace("3","<img src=img\3.gif>",$testo);
    $testo=str_replace("4","<img src=img\4.gif>",$testo);
    $testo=str_replace("5","<img src=img\5.gif>",$testo);
    $testo=str_replace("6","<img src=img\6.gif>",$testo);
    $testo=str_replace("7","<img src=img\7.gif>",$testo);
    $testo=str_replace("8","<img src=img\8.gif>",$testo);
    $testo=str_replace("9","<img src=img\9.gif>",$testo);

    echo
    $testo;

    ?>
    Come mai?

  2. #2
    poske non è connesso Altervistiano Junior
    Data registrazione
    06-02-2005
    Messaggi
    620

    Predefinito

    Citazione Originalmente inviato da allo
    $testo=str_replace("j","<img src=img\j.gif>",$testo);
    Non funziona nel senso che non vedi le immagini?
    Prova a cambiare il backslash del percorso del file così: <img src=img/j.gif>


    Ciao! :D

  3. #3
    Guest

    Predefinito

    Ho provato ma niente...
    Mi saltano fuori immagini a caso, spesso la S maiuscola.... e poi vengono fuori pezzi di codice!!
    Che casino!!!

    HELP!

  4. #4
    poske non è connesso Altervistiano Junior
    Data registrazione
    06-02-2005
    Messaggi
    620

    Predefinito

    Puoi postare un link di esempio o ci stai lavorando in locale?
    Forse vedendo gli errori che compaiono possiamo aiutarti meglio... il tuo codice mi sembra corretto...

    Ciao! :D

  5. #5
    L'avatar di binarysun
    binarysun non è connesso Utente storico
    Data registrazione
    02-07-2004
    Messaggi
    2,017

    Predefinito

    Semplice..
    La prima volta la varibile testo è:
    "Ciao come va?"
    Poi diventa:
    "Ci<img src=img\a.gif>o come v<img src=img\a.gif>?"
    Successivamente vengono modificate anche le lettere dentro i tag!

    Devi prendere lettera per lettera e sostituirle magari con un case, e poi inserirle tutte in una stringa!
    "L'intelligenza è una pianta che va curata continuamente.
    Dovreste vedere com'è bello, il mio bonsai."
    Rat-man®

    [Gradient Text]
    [Su che server sei?]
    ->flickr

  6. #6
    Guest

    Predefinito

    Sono in locale...
    Comunque questo è uno screenshot:

    http://allo.altervista.org/Immagine.jpg

  7. #7
    Guest

    Predefinito

    Puoi farmi un esempio, binarysun?
    Ultima modifica di allo : 04-09-2005 alle ore 14.42.27

  8. #8
    L'avatar di mythologia
    mythologia non è connesso Moderatore
    Data registrazione
    05-01-2004
    Messaggi
    2,614

    Predefinito

    Fai così, dovrebbe andare
    Codice PHP:
    <?
    $frase
    ="Ciao come va?";


    $testo=str_replace("a","<img src=img\a.gif>",$frase);
    $testo=str_replace("b","<img src=img\b.gif>",$testo);
    $testo=str_replace("c","<img src=img\c.gif>",$testo);
    $testo=str_replace("d","<img src=img\d.gif>",$testo);
    $testo=str_replace("e","<img src=img\e.gif>",$testo);
    $testo=str_replace("f","<img src=img\f.gif>",$testo);
    $testo=str_replace("g","<img src=img\g.gif>",$testo);
    $testo=str_replace("h","<img src=img\h.gif>",$testo);
    $testo=str_replace("i","<img src=img\i.gif>",$testo);
    $testo=str_replace("j","<img src=img\j.gif>",$testo);
    $testo=str_replace("k","<img src=img\k.gif>",$testo);
    $testo=str_replace("l","<img src=img\l.gif>",$testo);
    $testo=str_replace("m","<img src=img\m.gif>",$testo);
    $testo=str_replace("n","<img src=img\n.gif>",$testo);
    $testo=str_replace("o","<img src=img\o.gif>",$testo);
    $testo=str_replace("p","<img src=img\p.gif>",$testo);
    $testo=str_replace("q","<img src=img\q.gif>",$testo);
    $testo=str_replace("r","<img src=img\r.gif>",$testo);
    $testo=str_replace("s","<img src=img\s.gif>",$testo);
    $testo=str_replace("t","<img src=img\t.gif>",$testo);
    $testo=str_replace("u","<img src=img\u.gif>",$testo);
    $testo=str_replace("v","<img src=img\v.gif>",$testo);
    $testo=str_replace("w","<img src=img\w.gif>",$testo);
    $testo=str_replace("x","<img src=img\x.gif>",$testo);
    $testo=str_replace("y","<img src=img\y.gif>",$testo);
    $testo=str_replace("z","<img src=img\z.gif>",$testo);
    $testo=str_replace("A","<img src=img\al.gif>",$testo);
    $testo=str_replace("B","<img src=img\bl.gif>",$testo);
    $testo=str_replace("C","<img src=img\cl.gif>",$testo);
    $testo=str_replace("D","<img src=img\dl.gif>",$testo);
    $testo=str_replace("E","<img src=img\el.gif>",$testo);
    $testo=str_replace("F","<img src=img\fl.gif>",$testo);
    $testo=str_replace("G","<img src=img\gl.gif>",$testo);
    $testo=str_replace("H","<img src=img\hl.gif>",$testo);
    $testo=str_replace("I","<img src=img\il.gif>",$testo);
    $testo=str_replace("J","<img src=img\jl.gif>",$testo);
    $testo=str_replace("K","<img src=img\kl.gif>",$testo);
    $testo=str_replace("L","<img src=img\ll.gif>",$testo);
    $testo=str_replace("M","<img src=img\ml.gif>",$testo);
    $testo=str_replace("N","<img src=img\nl.gif>",$testo);
    $testo=str_replace("O","<img src=img\ol.gif>",$testo);
    $testo=str_replace("P","<img src=img\pl.gif>",$testo);
    $testo=str_replace("Q","<img src=img\ql.gif>",$testo);
    $testo=str_replace("R","<img src=img\rl.gif>",$testo);
    $testo=str_replace("S","<img src=img\sl.gif>",$testo);
    $testo=str_replace("T","<img src=img\tl.gif>",$testo);
    $testo=str_replace("U","<img src=img\ul.gif>",$testo);
    $testo=str_replace("V","<img src=img\vl.gif>",$testo);
    $testo=str_replace("W","<img src=img\wl.gif>",$testo);
    $testo=str_replace("X","<img src=img\xl.gif>",$testo);
    $testo=str_replace("Y","<img src=img\yl.gif>",$testo);
    $testo=str_replace("Z","<img src=img\zl.gif>",$testo);

    $testo=str_replace("@","<img src=img\chiocciola.gif>",$testo);
    $testo=str_replace("\"","<img src=img\slash2.gif>",$testo);
    $testo=str_replace(":","<img src=img\duepunti.gif>",$testo);
    $testo=str_replace("!","<img src=img\esclamativo.gif>",$testo);
    $testo=str_replace("-","<img src=img\meno.gif>",$testo);
    $testo=str_replace("?","<img src=img\interrogativo.gif>",$testo);
    $testo=str_replace(";","<img src=img\puntovirgola.gif>",$testo);
    $testo=str_replace("/","<img src=img\slash2.gif>",$testo);
    $testo=str_replace("0","<img src=img\0.gif>",$testo);
    $testo=str_replace("1","<img src=img\1.gif>",$testo);
    $testo=str_replace("2","<img src=img\2.gif>",$testo);
    $testo=str_replace("3","<img src=img\3.gif>",$testo);
    $testo=str_replace("4","<img src=img\4.gif>",$testo);
    $testo=str_replace("5","<img src=img\5.gif>",$testo);
    $testo=str_replace("6","<img src=img\6.gif>",$testo);
    $testo=str_replace("7","<img src=img\7.gif>",$testo);
    $testo=str_replace("8","<img src=img\8.gif>",$testo);
    $testo=str_replace("9","<img src=img\9.gif>",$testo);

    echo
    $testo;

    ?>

  9. #9
    Guest

    Predefinito

    Niente, stesso problema...
    Altre soluzioni?

  10. #10
    Guest

    Predefinito

    puoi provare a esplodere la variabile $testo in un array, sostituisci ogni valore dell'array, lo implodi e lo stampi... ma con frasi lunghe dovrebbe risultare pesantuccio...

  11. #11
    L'avatar di gve
    gve
    gve non è connesso Utente storico
    Data registrazione
    26-01-2003
    Residenza
    Brescia
    Messaggi
    2,964

    Predefinito

    Se devi solo stampare a schermo, ti conviene una cosa tipo questa (tra l'altro, anceh molto piu` semplice):

    Codice PHP:
    <?php
    $testo
    ='Ciao come va?';
    for (
    $i=0;$i<strlen($testo);$i++) echo '<img src="img\'.$testo{$i}.'.gif">';
    ?>
    | Regolamento del Forum | Regolamento di AlterVista | FAQ di AlterVista | Netiquette |

    GVE = GVE Virtual Extension
    AVCM #: 6637

  12. #12
    L'avatar di webscript
    webscript non è connesso Utente attivo
    Data registrazione
    28-11-2004
    Messaggi
    320

    Predefinito

    gve :p \' cosî mi togli la delimitazione della stringa per scrivere una variabile...

    <?php
    $testo='Ciao come va?';
    for ($i=0;$i<strlen($testo);$i++) echo '<img src="img\'.$testo{$i}.'.gif">';
    ?>

    da correggere con

    <?php
    $testo='Ciao come va?';
    for ($i=0;$i<strlen($testo);$i++) echo '<img src="img\\'.$testo{$i}.'.gif">';
    ?>

    WebScript

  13. #13
    Guest

    Predefinito

    Così funzionerebbe, ma:

    - Gli spazi cerca di riempirli con delle immagini e non posso creare immagini bianche chiamate " .gif";
    - In questo modo è case insensitive...

    Avete per caso altre idee??

  14. #14
    L'avatar di webscript
    webscript non è connesso Utente attivo
    Data registrazione
    28-11-2004
    Messaggi
    320

    Predefinito

    allora, c'erano due soluzioni... o usare le espressioni regolare, o quella espressa da gve.

    Prendiamo quella di Gve, con un if risolvi, fai

    if ($testo[$i] == "") {
    $testo = 'spazio';
    }else{
    $testo = $testo[$i];
    }
    //mettti l'echo di gve da me corretto
    //se invece tu non vuoi che allo spazio sia associata un immagine... puoi modificare l'if mettendo un != e mettendo come istruzione quello che sopra è l'istruzione dell'else.

    Per il secondo... non dovresti aver problemi perchè il tuo sito è su un server Linux e cioê case sensitive.

    P.S si che è case sensitive...

    $a = "A";

    echo $a; ti da A non a...

  15. #15
    Guest

    Predefinito

    Risolto!

    Codice:
    <?
    $testo="Ciao!";
    
    
    for ($i=0; $i<strlen($testo); $i++) {
           if($testo[$i]==" "){
            echo "<img src=img/spazio.gif>";
                   }else{
           $ms=str_replace("$testo[$i]","<img src=img/$testo[$i].gif>",$testo[$i]);
           echo $ms;
           }
    
    }
    
    ?>

  16. #16
    Guest

    Predefinito

    se però ci sono caratteri come ? o ! o simili lo script non funziona!

    try this

    Codice PHP:
    <?php

    $alphabet
    = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z');

    $text = 'Ciao come va?';
    $buffer = '';

    for (
    $i = 0; $i < strlen($text); $i++)
    {
    $text["$i"] = strtolower($text["$i"]);
    if (
    in_array($text["$i"], $alphabet))
    {
    $buffer .= '<img src="img/' . $text["$i"] . '.gif">';
    }
    else
    {
    $buffer .= $text["$i"];
    }
    }

    echo
    $buffer;

    ?>
    mavericck

  17. #17
    L'avatar di webscript
    webscript non è connesso Utente attivo
    Data registrazione
    28-11-2004
    Messaggi
    320

    Predefinito

    mav penso che lui voglia trasformare anche il ? in un'immagine...
    la soluzione la vedrei con un po' di str_replace, magari prendendo il metodo di mave e poi mettendo i str_replace usati sopra, per i caratteri speciali come "@" o altri...

    ah poi penso lo volesse case sensitive come dimostrato nel primo esempio... quindi basterebbe togliere strtolower.

    WebScript

  18. #18
    Guest

    Predefinito

    Proprio così, webscript.
    Grazie, adesso provo a fare un pò di esperimenti...

    A presto,
    allo

  19. #19
    L'avatar di webscript
    webscript non è connesso Utente attivo
    Data registrazione
    28-11-2004
    Messaggi
    320

    Predefinito

    cmq mi ricordo, ora... aggiungi l'elenco completo di maiuscole, minuscole nell'array, mettendo anche A, o se no usa un if con strtoupper.

  20. #20
    L'avatar di gve
    gve
    gve non è connesso Utente storico
    Data registrazione
    26-01-2003
    Residenza
    Brescia
    Messaggi
    2,964

    Predefinito

    E vabbe`, non avevo controllato le righe che avevo scritto ... e si` che c'erano anche i colori ad aiutare ... ma a non riguardare ... OLD


    Io vedrei piu` semplice modficare il tutto ripartendo dallo script di webscript:
    Codice PHP:
    <?
    $testo
    ="Ciao!";


    for (
    $i=0; $i<strlen($testo); $i++) {
    if(
    $testo[$i]==" "){
    echo
    "<img src=img/spazio.gif>";
    }else{
    $ms=str_replace("$testo[$i]","<img src=img/$testo[$i].gif>",$testo[$i]);
    echo
    $ms;
    }

    }

    ?>
    e rimpiazzando con uno switch l'if, anziche` usare l'array (anche se alla fine credo siano analoghe come soluzioni, forse e` piu` una questione di gusti che altro)
    Ultima modifica di gve : 06-09-2005 alle ore 14.45.53
    | Regolamento del Forum | Regolamento di AlterVista | FAQ di AlterVista | Netiquette |

    GVE = GVE Virtual Extension
    AVCM #: 6637

  21. #21
    L'avatar di webscript
    webscript non è connesso Utente attivo
    Data registrazione
    28-11-2004
    Messaggi
    320

    Predefinito

    no gve, non ti sbagli, lo switch viene eseguito più velocemente... :p

    il fatto è che lo switch è anche più elegante da vedere...

    :p gut Gve... gut.

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •