Visualizzazione risultati 1 fino 6 di 6

Discussione: isolare le parole di un testo con ritorni a capo?

  1. #1
    L'avatar di memai
    memai non è connesso Utente
    Data registrazione
    10-02-2010
    Residenza
    Bergamo
    Messaggi
    175

    Predefinito isolare le parole di un testo con ritorni a capo?

    Ciao a tutti, io vorrei riuscire a isolare le parole di un testo, per poi successivamente prendere alcune parole simili e riscriverle in modo diverso.

    Esempio: Io vorrei scrivere la parola "ciao" con "bello" e "ciaocoso" con "evanescente", purtroppo sto riscontrando ancora qualche difficolta, per questo motivo sto scrivendo questo post, spero che qualcuno possa darmi un aiuto.

    Questo è quello che ho pensato di scrivere io, ovviamente non è perfetto:

    Codice PHP:
    <?php

    if (!isset($_POST['sub']))
    {
    echo
    "<form action='' method='POST'> <textarea name='codice'></textarea><input type='submit' name='sub' value='invia'>";
    }

    if(isset(
    $_POST['sub']))
    {
    function
    ExplodeMaxima($sake ,$codice)
    {
    $n = count($codice);
    for(
    $i=0; $i<$n; $i++)
    {
    $codice[$i] = explode($sake,$codice[$i]);
    }

    $dotto = 0;

    for(
    $i=0; $i<$n; $i++)
    {
    for(
    $j=0; $j<count($codice[$i]); $j++)
    {
    $risultato[$dotto] = $codice[$i][$j];

    $dotto++;
    }
    }

    return
    $risultato;

    }

    $codice = array($_POST['codice']);

    $codice = ExplodeMaxima(' ',$codice);
    $codice = ExplodeMaxima( \n ,$codice);

    for (
    $i=0; $i<count($codice);$i++)
    {
    echo
    $codice[$i]."ORCO<br>";

    switch(
    $codice[$i])
    {

    case
    "ciao":
    $codice[$i] = "bello";
    break;


    case
    "ciaocoso":
    $codice[$i] = "evanescente";
    break;

    }

    }
    $codice = implode(' ', $codice);

    if(EMPTY(
    $codice))
    {
    echo
    "E' vuoto!";
    }
    else
    {
    echo
    $codice;
    }
    }
    ?>
    Ultima modifica di memai : 31-12-2011 alle ore 20.58.27 Motivo: Questa riga: $codice = ExplodeMaxima( n ,$codice); l'ho scritta con \n me la riscrive senza altervista.
    Notte bistecca, ho l'acquolina in bocca e 'sta sera c'è, carne di manzo per me!

  2. #2
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,270

    Predefinito

    (ancora non ho guardato il resto dello script, e sinceramente non ho capito nemmeno cosa vuoi fare):

    La riga:

    Codice PHP:
    $codice = ExplodeMaxima( \n ,$codice);
    so che hai messo il backslash, ma dovrebbe essere tra virgolette:
    Codice PHP:
    $codice = ExplodeMaxima( "\n",$codice);
    Ciao!
    Ultima modifica di alemoppo : 01-01-2012 alle ore 02.22.34

  3. #3
    Guest

    Predefinito

    Da quel poco che ho capito credo che anche la funzione similar_text() possa tornarti utile.


  4. #4
    L'avatar di memai
    memai non è connesso Utente
    Data registrazione
    10-02-2010
    Residenza
    Bergamo
    Messaggi
    175

    Predefinito

    Scrivendo :
    Codice PHP:
    $codice = ExplodeMaxima( "\n",$codice);
    non riscontravo il risultato che volevo e non i mandava a capo le parole. per questo ho deciso di scrivere \n senza le virgolette e facendo così mi mandava a capo come volevo.


    La funzione similar_text() trova la percentuale di differenza fra due stringe, quindi tecnicamente dovrei riscontrare la differenza di due stringe e dipendentemente dalle condizioni che richiedo mi andrebbe a "tradurre" o no la parola in questione, boh forse potrebbe essermi utile, ok grazie, proverò.
    Notte bistecca, ho l'acquolina in bocca e 'sta sera c'è, carne di manzo per me!

  5. #5
    Guest

    Predefinito

    Citazione Originalmente inviato da memai
    Ciao a tutti, io vorrei riuscire a isolare le parole di un testo, per poi successivamente prendere alcune parole simili e riscriverle in modo diverso.
    Cerco di attenermi a questo lasciando perdere ciò che hai momentaneamente fatto in quanto, mi pare, troppo ridondante e inutile per il fine esposto.

    Per isolare le parole di un testo è sufficiente fare:
    Codice PHP:
    # può essere riempito da un input utente via post
    $testo = 'Il mio testo';

    # il trim serve ad evitare indici vuoti
    $splitPhrases = explode("\n", trim($testo));


    $words = array();

    foreach (
    $splitPhrases as $period)
    {
    $splitPeriod = explode(' ', $period);

    foreach (
    $splitPeriod as $word)
    {
    if (!empty(
    $word)) $words[] = $word;
    }

    }
    A questo punto $words contiene un elenco di parole ordinate in un indice lineare consequenziale, ordinate per ritrovamento nell'esaminazione del testo e puoi farci quel che ti pare.

    Quanto alla sostituzione delle parole se non esplichi di preciso il problema è difficile capire in che modo attuarlo, perché anche senza isolare le parole di un testo è possibile a priori specificare una lista di replace tramite strtr().
    Ultima modifica di alemoppo : 03-01-2012 alle ore 15.15.36 Motivo: tag [code] -> [php]

  6. #6
    L'avatar di memai
    memai non è connesso Utente
    Data registrazione
    10-02-2010
    Residenza
    Bergamo
    Messaggi
    175

    Predefinito

    Ok capito.
    Notte bistecca, ho l'acquolina in bocca e 'sta sera c'è, carne di manzo per me!

Regole di scrittura

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