Visualizzazione risultati 1 fino 12 di 12

Discussione: ereg_replace

  1. #1
    Guest

    Predefinito

    Ciao a tutti, percaso sapete come usare l'ereg replace per tradurre lettere del testo che immettono altri utenti da form? un esempio: quello che ho realizzato a mano:

    http://www.oslinux.it/test/traduttore/

    provate voi stessi, e vedete il problema ecco il codice:

    [code:1:7fcf75b099]<?
    echo ereg_replace ("a", "t", $a); //Alfabeto 1
    echo ereg_replace ("b", "h", $a);
    echo ereg_replace ("c", "v", $a);
    echo ereg_replace ("d", "l", $a);
    echo ereg_replace ("e", "f", $a);
    echo ereg_replace ("f", "p", $a);
    echo ereg_replace ("g", "q", $a);
    echo ereg_replace ("h", "w", $a);
    echo ereg_replace ("i", "i", $a);
    echo ereg_replace ("j", "x", $a);
    echo ereg_replace ("k", "y", $a);
    echo ereg_replace ("l", "z", $a);
    echo ereg_replace ("m", "a", $a);
    echo ereg_replace ("n", "b", $a);
    echo ereg_replace ("o", "o", $a);
    echo ereg_replace ("p", "c", $a);
    echo ereg_replace ("q", "e", $a);
    echo ereg_replace ("r", "j", $a);
    echo ereg_replace ("s", "k", $a);
    echo ereg_replace ("t", "r", $a);
    echo ereg_replace ("u", "s", $a);
    echo ereg_replace ("v", "u", $a);
    echo ereg_replace ("w", "d", $a);
    echo ereg_replace ("x", "g", $a);
    echo ereg_replace ("y", "m", $a);
    echo ereg_replace ("z", "n", $a);
    print ($a)
    ?>[/code:1:7fcf75b099]

    secondo voi come posso fare?

  2. #2
    Guest

    Predefinito

    prova così

    $a è il testo inserito dall'utente

    [code:1:956a93c68d]
    $a = str_replace("lettera da sostituire", "lettera sostitutiva", "$a");
    print("$a");[/code:1:956a93c68d]

    fammi sapere se funge, non ho mai fatto una cosa del genere ma simile

    ciauz!

  3. #3
    Guest

    Predefinito

    Citazione Originalmente inviato da abbagliami
    prova così

    $a è il testo inserito dall'utente

    [code:1:1fc7290601]
    $a = str_replace("lettera da sostituire", "lettera sostitutiva", "$a");
    print("$a");[/code:1:1fc7290601]

    fammi sapere se funge, non ho mai fatto una cosa del genere ma simile

    ciauz!
    ma scusa se faccio così mi sà che ne faccio una a volta e và a finire come questa (o no) cmq provo, grazie :D

  4. #4
    Guest

    Predefinito

    aaaaaah ma tu vuoi che vengano sostituite tutte le lettere dell'alfabeto con altre lettere senza dover scrivere ereg_replace per ogni lettera?

    mi sa che avevo capito male ^_^

  5. #5
    Guest

    Predefinito

    Citazione Originalmente inviato da abbagliami
    aaaaaah ma tu vuoi che vengano sostituite tutte le lettere dell'alfabeto con altre lettere senza dover scrivere ereg_replace per ogni lettera?

    mi sa che avevo capito male ^_^
    noooo avevi capito, senti io voglio che se ad esempio uno scrive

    abcd

    gli venga tradotto in

    tslk

    nn mi importa se devo scrivere 5000 righe di codice :D:D voglio solo questo

  6. #6
    Guest

    Predefinito

    prova così

    [code:1:467adc346b]
    $letteraa = 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");
    $letterab = array("t", "h", "v", "l", "f", "p", "q", "w", "i", "x", "y", "z", "a", "b", "o", "c", "e", "j", "k", "r", "s", "u", "d", "g", "m", "n");
    for($i = 0; $i < count($letteraa); $i++)
    $a = str_replace("$letteraa[$i]", "$letterab[$i] ", "$a");
    print("$a");
    [/code:1:467adc346b]

    spero di aver scritto tutto bene, fammi sapere se funge ^_^

    ciauz!

  7. #7
    Guest

    Predefinito

    così:

    [code:1:a0841de98c]<?
    $letteraa = 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");
    $letterab = array("t", "h", "v", "l", "f", "p", "q", "w", "i", "x", "y", "z", "a", "b", "o", "c", "e", "j", "k", "r", "s", "u", "d", "g", "m", "n");
    for($i = 0; $i < count($letteraa); $i++)
    $a = str_replace("$letteraa[$i]", "$letterab[$i]", $a);
    print("$a");
    ?>[/code:1:a0841de98c]
    funziona :D

    thx a lot

  8. #8
    Guest

    Predefinito

    io so foooooart! lol ^_^

  9. #9
    Guest

    Predefinito

    mi correggo, non funge :(

    Traduce solo queste lettere e non tutte come dovrebbe:

    h>f
    j>g
    l>d
    o>i
    p>k
    q>b
    r>m
    s>e
    t>a
    v>c
    w>n
    x>u
    z>y

    (proprio ora mi accorgo che in realtà secondo lui le traduce tutte, infatti in totale sono 26!!)

    ecco il codice:

    [code:1:a3ad9c27df]<?
    $letteraa = 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");
    $letterab = array("t", "q", "v", "l", "s", "h", "j", "f", "o", "g", "p", "d", "r", "w", "i", "k", "b", "m", "e", "a", "x", "c", "n", "u", "z", "y");
    for($i = 0; $i < count($letterab); $i++)
    $a = str_replace("$letteraa[$i]", "$letterab[$i]", $a);
    print("$a");
    ?>[/code:1:a3ad9c27df]

  10. #10
    Guest

    Predefinito

    traduce solo da sinistra verso destra? cioè se scrivi h ti printa f ma se scrivi f non printa h?

    prova ad aggiungere altre righe così

    [code:1:bb27e0e6c2]
    <?
    $letteraa = 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");
    $letterab = array("t", "q", "v", "l", "s", "h", "j", "f", "o", "g", "p", "d", "r", "w", "i", "k", "b", "m", "e", "a", "x", "c", "n", "u", "z", "y");
    for($i = 0; $i < count($letterab); $i++)
    $a = str_replace("$letteraa[$i]", "$letterab[$i]", $a);

    $letterac = array("t", "q", "v", "l", "s", "h", "j", "f", "o", "g", "p", "d", "r", "w", "i", "k", "b", "m", "e", "a", "x", "c", "n", "u", "z", "y");
    $letterad = 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");
    for($o = 0; $o < count($letterad); $o++)
    $a = str_replace("$letterac[$o]", "$letterad[$o]", $a);
    print("$a");
    ?>[/code:1:bb27e0e6c2]

    ho invertito gli array, fammi sapere ^_^

  11. #11
    Guest

    Predefinito

    str_replace funziona con tutte le ricorrenze trovate, non si ferma alla prima. Vedi a proposito l'esempio su www.php.net:

    [code:1:ed7dfebe57]// Provides: Hll Wrld f PHP
    $vowels = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U");
    $onlyconstants = str_replace($vowels, "", "Hello World of PHP");
    [/code:1:ed7dfebe57]

    Come vedi la lettera "o" viene tolta tutte le volte che compare, ovvero più di una :D

    Le espressioni regolari ti servirebbero se non sapessi con esattezza quali stringhe sostituire e volessi dare dei criteri più "ampi". Vedrai che applicando l'esempio sopra funziona :)

  12. #12
    L'avatar di Evcz
    Evcz non è connesso Utente storico
    Data registrazione
    31-05-2002
    Residenza
    Vicenza
    Messaggi
    5,670

    Predefinito

    esatto str_replace carica meno il server e le sostituisce tutte, la funzione ereg_replace() andrebbe usata con le espressioni regolari e nn con banali sostituzione.

    cmq esiste anche la funzione preg_match_all() che si può usare con le espressioni regolari e controlla tutto il testo
    There are three kinds of people in this world: people who watch things happen ... people who complain about things that happen ... and people who make things happen...

Regole di scrittura

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