Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    PHP; Conta caratteri contenuti nelle parole di una stringa

    Salve;

    Mi occorrerebbe sapere se esisiste la possibilità di una funzione che riesca a contare i caratteri contenuti in ogni parola di una stringa.

    Ho letto la guida php su conta parole e contacaratteri per cercare soluzioni, ma non sono riuscito a trovare niente che funga al mio ragionamento.

    In sintesi mi occorrerebbe una finzione che segua il seguente ragionanmento:

    -se nella stringa intera ci sono parole contenenti più di "Tot caratteri"; allora fai questa operazione, diversamente, fai un'altra operazione.

    Una semplice condizione o una funzione che in fine mi dia se vero o falso.

    Confido nella vostra comprensione e spirito altruista.

    Un saluto da novellino PHP.
    Nicola.

  2. #2
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,361
    Un esempio aiuterebbe.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  3. #3
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    ad esempio:

    Codice PHP:
    $text"un testo, suddiviso da spazi";
    foreach(
    explode(" "preg_replace("/[^A-Za-z0-9 ]/"''$text)) as $word) {
        if(
    strlen($word) >= 6) {
            echo 
    "$word è più lunga di 6 <br />";
        }


  4. #4
    Quote Originariamente inviata da clasku Visualizza il messaggio
    ad esempio:

    Codice PHP:
    $text"un testo, suddiviso da spazi";
    foreach(
    explode(" "preg_replace("/[^A-Za-z0-9 ]/"''$text)) as $word) {
        if(
    strlen($word) >= 6) {
            echo 
    "$word ï¿½ pi� lunga di 6 <br />";
        }

    Grazie @clasku per avermi risposto.

    In merito a quanto in esempio propostomi, rispndo scrivendo che:

    Sarebbe l'ideale, se non fosse che la condizione "
    codice:
    if(strlen($word) >= 6)
    " non puo' essere maggiore di (9).

    Se imposti (10) la condizione non blocca facendo passare la stringa.

    Personalmente mi occorrerebbe un limice di caratteri impostabili senza un limite o con un limite minimo tra 20 e 35 caratteri.

    Premettendo che sarei interessato a capire meglio a cosa e' dovuto il limite massimo di (9) e come fa a contare i caratteri se si usa "strleng" e "word".

    Personalmente avrei scritto qualcosa che mi da lo stesso risultato ma si tratta di una funzione che esplode la stringa e poi usa un ciclo che controlla e conta i caratteri di ciascuna parola in una condizione che interrompe il ciclo. Il risultato lo ottengo comunque e senza limiti, ma, apunto perche' il ciclo viene interrotto bruscamente senza che termini il suo percorso naturale non mi ispira molta fiducia.

    Se potessi spiegarmi il perche' del limite del tuo scritto o potessi varirlo usando magari qualche altra variabile il tuo script sarebbe perfetto.

    Nuovamente i mei saluti
    Nicola

  5. #5
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    Il 6 che ho messo nell'if è solo un esempio, puoi mettere qualsiasi valore e cambiare l'if alla bisogna per gestire una lunghezza compresa tra due numeri

    Strlen è una funzione predefinita di php che restituisce la lunghezza della stringa passata in argomento
    $word non è altro che la singola parola della stringa $text ripulita dei caratteri diversi da quelli alfanumerici e esplosa usando gli spazi come delimitatore

    Posta il tuo codice così vediamo come modificarlo...

  6. #6
    Quote Originariamente inviata da clasku Visualizza il messaggio
    Il 6 che ho messo nell'if è solo un esempio, puoi mettere qualsiasi valore e cambiare l'if alla bisogna per gestire una lunghezza compresa tra due numeri

    Strlen è una funzione predefinita di php che restituisce la lunghezza della stringa passata in argomento
    $word non è altro che la singola parola della stringa $text ripulita dei caratteri diversi da quelli alfanumerici e esplosa usando gli spazi come delimitatore

    Posta il tuo codice così vediamo come modificarlo...
    Salve @clasku;

    Dopo questa tua ultima ho ricontrollato il tuo script e dopo avermi restituito sempre lo stesso risultato: (che la condizione non bloccava oltre i (9) caratteri) mi sono accorto che l'errore non era nel tuo scritto ma nella mia disattenzione.

    In sintesi continuavo a testare il tuo scritto cambiando il numero in crescendo nella condizione, ma senza sostituire il testo della tua variabile con la vera variabile su cui effettuare il controllo.

    Questo è il motivo per il quale, oltre i nove caratteri tutto passava invariato anche se dichiaravo di bloccare dai 25 in poi.

    Nel tuo testo di prova la parola più lunga "Suddiviso" è appunto di nove caratteri ed il tuo script conteggiava quella mentre, la stringa che io inviavo non veniva setacciata affatto.

    Ti chiederai, perchè scrivo per spiegarti; ed io ti rispondo, che lo faccio per sottolineare che il tuo scritto non mi funzionava a causa della mia sbadadaggine e non per altro.

    Per questo ti porgo ufficialmente le mie scuse per averti fatto perdere inutilmente altro tempo che come per tutti sarà sicuramente prezioso anche per te.

    Nel contempo sono a ringraziarti nuovamente per la tua pazienza ed immediadezza nel risolvere il mio problema che, in fin dei conti era solo mio.

    Un grazie davvero di cuore
    Nicola

  7. #7
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    aiutare qualcuno non è perdere tempo, lo diventa solo se la controparte non è collaborativa o attenta nel guardare in modo critico i suggerimenti che vengono dati

    siamo su un forum, lasciamo il lessico formale a situazioni diverse da quelle di uno scambio in amicizia

Tag per questa discussione

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.