Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 23
  1. #1

    eliminare parole da un testo

    salve a tutti.
    dovrei eliminare da un testo delle parole. Mi conviene usare le espressioni regolari o semplicemente la funzione str_replace?

    Mi sono spiegato?

    esempio: se da un testo (contenuto in una variabile, $testo) voglio eliminare le seguenti parole:
    noi, voi, loro
    come devo fare?

    regalami un oggi da favola...e il domani bhe!?non mi importa se tu 6 con me! ©Ily

  2. #2
    Codice PHP:
    $testo "noi siamo voi siete essi sono";
    // eliminiamo noi voi essi
    replace("noi","",$testo);
    replace("voi","",$testo);
    replace("essi","",$testo); 
    ... :master: riconosco l'esistenza di un limite a tutto , ma non l'accetto ...

  3. #3
    Oppure puoi fare:
    Codice PHP:
       
       $testo
    ="Ciao mamma adesso vado a scuola";    
       
    $cancella "scuola";
       
    //Da testo cancella quello che tu scrivi nella variabile cancella
       
    $testo str_replace ($cancella""$testo); 
    Gli strati della mia mente sono incomprensibili per voi poveri MORTALI!

  4. #4
    non va bene

    se nel testo ho la parola noioso mi elimina noi e rimane oso...

    perciò pensavo alle espressioni regolari, perchè cmq non è che devo eliminare 2-3 parole ma parecchie, quindi dovrebbe essere una cosa "più automatica", solo che io le espressioni regolari non è che le conosco tanto bene

    Cmq mo provo a fare qualche esempio.

    regalami un oggi da favola...e il domani bhe!?non mi importa se tu 6 con me! ©Ily

  5. #5
    Prova così:
    Codice PHP:

       $testo
    ="Ciao mamma adesso vado a scuola";       
       
    $cancella "scuola";   
       
    //Da testo cancella quello che tu scrivi nella variabile cancella
       
    $testo str_replace (" "+$cancella+" """$testo);    
       print 
    $testo
    Gli strati della mia mente sono incomprensibili per voi poveri MORTALI!

  6. #6
    le proposte qui sopra non vanno bene per diversi motivi, ho screitto adesso questa che dovrebbe fare al caso tuo:
    codice:
    function delete_word($text, $ar_words, $cs = true) {
    	// andr3a
    	$ar_words = is_Array($ar_words) ? $ar_words : Array($ar_words);
    	if($cs != true) {
    		for($a=0; $a<count($ar_words); $a++) {
    			$ar_words[$a] = strtoupper($ar_words[$a]);
    		}
    	}
    	$text = explode(" ", $text);
    	for($a=0; $a<count($text); $a++) {
    	        $cleared = eregi_replace("([^[:alpha:]])", "", $text[$a]);
    		$cleared = $cs == true ? $cleared : strtoupper($cleared);
    		if(in_Array($cleared, $ar_words)) {
    			$text[$a] = eregi_replace("([a-z0-9])", "", $text[$a]);
    		}
    	}
    	return implode(" ", $text);
    }

    Esempi:
    Codice PHP:
    // data una stringa nella variabile $stringa
    $stringa "Noi voi essi loro prova noisoso altro, boh non sa()pr[ei";

    // ... ed un array con le parole da eliminare
    $ar_words = Array("io""tu""egli""noi""voi""essi""altro");

    // ecco la frase pulita
    echo delete_word($stringa$ar_words);

    // ... oppure ...
    echo "<hr />";

    // ecco la frase pulita in modo case insensitive
    echo delete_word($stringa$ar_wordsfalse); 
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  7. #7
    la function serve per dividere la frase?

    regalami un oggi da favola...e il domani bhe!?non mi importa se tu 6 con me! ©Ily

  8. #8
    ehm.. scusa ho detto una fagianata
    fammi leggere meglio...

    regalami un oggi da favola...e il domani bhe!?non mi importa se tu 6 con me! ©Ily

  9. #9
    Originariamente inviato da Yassassin
    la function serve per dividere la frase?
    ma provare in sto forum non usa piu' ????


    Serve a far tornare la frase senza le parole che sono nell' array, che potrebbe anche essere una sola parola, quindi non un array, ke passi come secondo argomento, potendo scegliere se lasciarlo case sensitive, opzione di default, o case insensitive, mettendo false come terzo parametro opzionale ... :quipy:
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  10. #10
    scusa andr3a... io a quest'ora il cervello lo spengo.... :quipy:

    Cmq l'ho riacceso un attimo e ho applicato la funzione in_array (che mi sfuggiva) per fare quello che volevo (e va):

    Codice PHP:
    $testo strtolower($testo);
    $pattern "[^0-9a-zàèìòù//]";
    $testo ereg_replace ($pattern" "$testo);
    $testo trim($testo);
    $testo explode(" ",$testo);
    $total_words array_unique($testo);
    sort($total_words);
    $nuovoArray = array();
    $eliminare = array("egli","essi","altro","degli","delle","dell","della","dello","degli","dall","alla","nella");
    foreach(
    $total_words as $parola)
    {
        if(
    strlen($parola) > && !in_array($parola,$eliminare))
        {
            
    array_push($nuovoArray,$parola);
        }
    }

    foreach(
    $nuovoArray as $k => $parola)
    {
        print 
    "$k) ".$parola."
    "
    ;

    Questo è quello che serve a me. Mi mancava appunto l'eliminazione dei termini "inutili".

    Dankiù :adhone:

    regalami un oggi da favola...e il domani bhe!?non mi importa se tu 6 con me! ©Ily

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 © 2024 vBulletin Solutions, Inc. All rights reserved.