Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    65

    Singola parola in un array

    Salve a tutti,

    sto pensando come poter realizzare questa cosa, però non sono arrivato ad una conclusione soddisfacente:

    In pratica io ho un form con casella di testo in text-area (quella per i testi lunghi per intenderci) e vorrei che ogni parola inserita al suo interno venga messa in un'apposita variabile di un array.

    Esempio:

    codice:
    aperitivo, balcone, cucina, etc...
    L'unica cosa che mi è venuta in mente (considerando le mie conoscenze di php - che sono a livello base -) è quella di far inserire le parole una per riga, di far proiettare tutte le parole su di un file di testo (creato dallo script) e di leggere tutte le singole righe così che il php possa mettere le parole nell'array.

    Come soluzione non è che mi piaccia tantissimo, anche perché così facendo secondo me faccio moltissimi passaggi in più.

    Esiste un modo che permetta di prendere queste parole e sistemarle nell'array? Magari anche se le parole fossero separate da virgole o anche in un testo scritto come questo mio post?

    Grazie in anticipo

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    codice:
    preg_match_all('#\w+#',$testo,$mth);
    echo '<pre>';
    print_r($mth);
    dove $testo è la tua variabile contenente quanto scritto.

  3. #3
    puoi explodere sullo spazio

    $array = explode(" ", $stringa);
    PHP LEARN - Guide, tutorial e articoli sempre aggiornati
    NUOVO: standardLib; il potente framework PHP é ora disponibile
    *******************************************
    Scarica oggi la tua copia di MtxEventManager

  4. #4
    Guarda le funzioni explode() e implode() sul manuale PHP.
    usi come separatore la virgola ed il gioco è fatto.

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    65
    Originariamente inviato da nicola75ss
    codice:
    preg_match_all('#\w+#',$testo,$mth);
    echo '<pre>';
    print_r($mth);
    dove $testo è la tua variabile contenente quanto scritto.

    Grazie per la risposta

    Potresti, per favore, spiegarmi cosa fa #\w+#. Ancora non ho una totale dimestichezza con php.net (infatti sto studiando da altri manuali) e non sono ben riuscito a comprendere cosa fa.

    Io preg_match lo uso per validare i form, anche se leggendo sul manuale questo input dovrebbe fare proprio quello che cerco io.



    puoi explodere sullo spazio $array = explode(" ", $stringa);
    Grazie per la risposta, mi sembra proprio quello che faccia al caso mio, anche in maniera piuttosto semplice.

    Basta alla fine scrivere una cosa del genere:

    Codice PHP:
    $variabile_finale explode(" "$_POST['nome_usato_nel_form']); 
    In questo caso esiste la possibilità di utilizzare come "marcatori", contemporaneamente, sia la virgola, sia il comando di "a capo", sia lo spazio?

  6. #6
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Maggiori dettagli li trovi in questa pagina del manuale

    http://www.php.net/manual/en/regexp.....backslash.php

    tramite la funzione preg_match_all() inserisco in un array tutte le parole trovate nel testo, tramite \w+, a prescindere da quale separatore venga utilizzato. Questa soluzione è quindi più flessibile dell'uso di explode().

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    65
    Originariamente inviato da nicola75ss
    Maggiori dettagli li trovi in questa pagina del manuale

    http://www.php.net/manual/en/regexp.....backslash.php

    tramite la funzione preg_match_all() inserisco in un array tutte le parole trovate nel testo, tramite \w+, a prescindere da quale separatore venga utilizzato. Questa soluzione è quindi più flessibile dell'uso di explode().
    Hmm, decisamente utile. Grazie

    Giusto per curiosità personale: è possibile invece con explode utilizzare più separatori contemporaneamente?

  8. #8
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Con explode() puoi usare un solo separatore.

    Se vuoi specificare separatori diversi allora usa preg_split().

    Esempio

    codice:
    $mth = preg_split('# |,|-|;|\.|\?#',$testo);
    echo '<pre>';
    print_r($mth);

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    65
    Grazie mille

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