Visualizzazione risultati 1 fino 3 di 3

Discussione: testo - testo

  1. #1
    samubot non è connesso Neofita
    Data registrazione
    14-07-2017
    Messaggi
    2

    Predefinito testo - testo

    Mi chiedevo se fosse possibile (in php) sottrarre 2 testi.
    esempio:
    $testo = "Ciao a tutti";
    $meno = "a";
    $testo_finale = $testo - $meno;
    e dovrebbe venire fuori "ciao tutti".
    Son sicuro che non si faccia così, ma forse voi sapete farlo

  2. #2
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Mi chiedevo se fosse possibile (in php) sottrarre 2 testi.
    Non esiste il concetto di sottrazione tra testi, né in PHP né in nessun altro contesto.
    Ciò che stai chiedendo sembra essere la rimozione di una parola da una stringa, il classico esempio di rimozione di stopword, che puoi ottenere (ad esempio) scomponendo la stringa inizare in un vettore di parole, rimuovendo da quest'ultimo ogni occorrenza della parola da eliminare e ricomponendo il vettore in una stringa:
    Codice PHP:
    $testo = "Ciao a tutti";
    $stopword = "a";


    $is_not_stopword = function ($string) use($stopword) {
    return
    $string !== $stopword;
    };
    $risultato = implode(" ", array_filter(explode(" ", $testo), $is_not_stopword));

    echo
    $risultato; // "Ciao tutti"
    Si può generalizzare per gestire più di una parola da rimuovere. Per la punteggiatura è un po' più complicato.

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

    Predefinito

    Codice PHP:
    $testo = "Ciao a tutti";
    $meno = "a";
    $testo_finale = str_replace(' '.$meno.' ',' ',$testo);
    echo
    $testo_finale;
    Puoi anche passare un'array:
    Codice PHP:
    $testo = "Ciao a tutti .";
    $meno = array(' a ',' tutti ');
    $testo_finale = str_replace($meno,' ',$testo);
    echo
    $testo_finale;
    Da problemi però per le parole al termine o inizio della stringa (a meno di settare correttamente $meno).

    La cosa più semplice sarebbe altrimenti con le espressioni regolari (vedi preg_replace), ma forse un po' meno ottimizzato a livello di calcoli.

    Ciao!
    Ultima modifica di alemoppo : 29-11-2017 alle ore 01.11.44

Regole di scrittura

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