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

    Spezzare delle stringhe

    Salve a tutti.
    ho la seguente situazione.

    Da una tabella prelevo delle stringhe che compongono un menù a tendina tra cui l'utente può scegliere.

    Queste stringhe sono di circa 300 caratteri ... ergo ingestibili (barra di scorrimento, troppo lunghe, etc. etc.).

    Qualcuno ha qualche idea sapendo che la funzione wordwrap non ha dato i risultati voluti ?

    Allego il codice del punto:

    <tr>
    <td align="right" width="235">
    <font face="Arial">C.D.D. :</font>

    </td>
    <td>
    <select name="codice">
    <?
    for ($l = 1; $l <= $quantecitta3; $l++)
    {
    echo "
    ";
    next($arr3);
    print pos($arr3);
    ?>
    <option value="<? print pos($arr3);?>"> <? print pos($arr3);?></option>
    <?
    }
    ?>
    </select>
    </td>
    </tr>

    Un saluto.
    Enrico

  2. #2
    Utente di HTML.it L'avatar di Gumble
    Registrato dal
    Jun 2004
    Messaggi
    1,313
    ma tu vuoi che le stringhe tipo "IoSonoUnaStringaDiTrecentoCaratteri" vengano visualizzate completamente nel menu a tendina? se si, non vedo cosa puoi fare...

    se invece vuoi solo dare un senso al menu potresti definire un tot di caratteri e tranciare (con i classici ... (3punti) la stringa) e avere qualcosa tipo "IoSonoUnaStringa..." .

    ma il problema si pone: quanti caratteri fanno in modo che l'user capisca cosa sta scegliendo nel menu a tendina?

    é solo un'idea...
    alcool: la causa e la soluzione di tutti i problemi

  3. #3

    ........

    Ciao.
    Puoi usare substr .


    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  4. #4
    Originariamente inviato da Gumble
    ma tu vuoi che le stringhe tipo "IoSonoUnaStringaDiTrecentoCaratteri" vengano visualizzate completamente nel menu a tendina? se si, non vedo cosa puoi fare...

    se invece vuoi solo dare un senso al menu potresti definire un tot di caratteri e tranciare (con i classici ... (3punti) la stringa) e avere qualcosa tipo "IoSonoUnaStringa..." .

    ma il problema si pone: quanti caratteri fanno in modo che l'user capisca cosa sta scegliendo nel menu a tendina?

    é solo un'idea...
    No io vorrei che fosse così:

    123 IoSonoUnaStringaLungaEPerciò
    ProseguoSuAlmenoDueRigheUnaSottoLAltra

    Enrico

  5. #5
    mi interessa
    ho il problema della deformazionie della grafica se qualcuno scrive cose tipo

    "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaa"

    sul mio forum, ma se uso soluzioni del tipo

    $testo=ereg_replace("([^ ][^<(.*?)>]{25})","\\1 ",$testo);

    mi spezza anche le frasi normali e mi crea casino!

    mi servirebbe qualcosa che spezzi solo le stringhe maggiori di 25-30 caratteri senza spazi,ma che non tocchi eventuali link o url di immagini!

    :master: :master:

  6. #6
    ho risolto con questa funzione


    Codice PHP:
    <?php

    function textWrap($text$size$separator="
    ) {

       
    $new_text '';
       
    $text_1 explode('>',$text);
       
    $sizeof sizeof($text_1);
       
    $remain $size;
      
       for (
    $i=0$i<$sizeof; ++$i) {
          
           
    $text_2 explode('<',$text_1[$i]);
          
           if (!empty(
    $text_2[0])){
               
    $perl '/([^\\n\\r .]{'$remain .',})/i';
               
    $possibly_splittedpreg_replace$perl'$1'.$separator$text_2[0] );
              
               
    $splitted explode($separator,$possibly_splitted);
               
    $remain -= strlen($splitted[0]);
               if(
    $remain<=0$remain $size;
              
               
    $new_text .= $possibly_splitted;
           }
      
           if (!empty(
    $text_2[1])) $new_text .= '<' $text_2[1] . '>';
       }
       return 
    $new_text;
    }
    ?>
    saluti!

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.