Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    53

    Andare a capo dopo tot caratteri

    salve a tutti ho questo piccolo problema che non so affrontare : In pratica utilizzo il seguente codice per estrarre il campo testo da una tabella del mio database mysql:
    Codice PHP:
    <? echo estrazione_dati($row["testo"]); ?>
    mentre la funzione che mi gestisce la visualizzazione e l'invio dei messaggi è questa:
    Codice PHP:
    function scrivi_messaggio($mittente,$destinatario,$tipo,$testo)
    {
    global 
    $_CONFIG;

    $day date("d",time()); 
    $month date("m",time()); 
    $year date("Y",time()); 
    $data_log $year ."-"$month ."-"$day;

    mysql_query ("
    INSERT INTO "
    .$_CONFIG['table_messaggi']."
    (id_mittente, id_destinatario, tipo, testo, data_invio, letto)
    VALUES
    ("
    .$mittente.", ".$destinatario.", '".$tipo."', '".$testo."', '".$data_log."', 'n')
    "
    );

        if (
    mysql_insert_id()){
            return 
    "Messaggio inviato correttamente";
        }else{
            return 
    "Messaggio NON inviato";
        }


    Quello che voglio fare è impostare l'estrazione dei dati in modo tale che se un testo viene scritto tutto attaccato non mi provoci un allungamento della pagina. Il problema si pone quandi il testo comprende parole o esclamazioni linghissime.
    Vi ringrazio anticipatamente di eventuali consigli.

  2. #2
    Ti suggerisco di iniziare leggendo i commenti degli utenti sul manuale ufficiale:

    http://www.php.net/wordwrap

  3. #3
    La questione è complessa, purtroppo la resa grafica di un testo non necessariamente è misurabile in lunghezza di caratteri.

    A seconda del font utilizzato la larghezza può variare.

    Dovresti creare una funzione che faccia una serie di calcoli in base a determinate variabili, ma comunque è una cosa su cui dovresti perdere del tempo.

    Contando che a capo in genere ci va automaticamente come dici il tuo unico problema sarebbero le parole troppo lunghe, dovresti riuscire a trovare qual'è la lunghezza massima consentita.

    A quel punto, presa una frase dovresti usando explode potresti dividere in un array tutte le parole usando come carattere separatore lo spazio, poi analizzare le parole una ad una e troncare in due o più tronconi quelle troppo lunghe, esempio "parolatroppolunga" -> "parola- troppo- lunga"

    In seguito utilizzando implode rimetti insieme.

    Ci sarebbero delle controindicazioni, la perdita di più spazi consecutivi, ma tanto nella resa visiva html comunque andrebbero persi, o magari se nel messaggio è presente una url o dei tag troncandoli perderebbero il loro costrutto e verrebbero visualizzati male.

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    53
    Ho risolto con questo compromesso :
    Codice PHP:
    <? 
              $text 
    = ["testo"];
              
    $newtext wordwrap($text100"\n"1);
              echo 
    "$newtext\n;" ?>
    in linea di massima con i 100 caratteri mi va bene eventualmente se noto problemi cerco di trovare un numero di caratteri minore.
    Grazie a tutti

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.